因?yàn)閟witch的括號(hào)中是f為一個(gè)數(shù),而case中的判定依據(jù)確實(shí)個(gè)boolean邏輯值,無(wú)法比較,所有都是跳過(guò)的。
創(chuàng)新互聯(lián)建站是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,專業(yè)領(lǐng)域包括網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、電商網(wǎng)站制作開(kāi)發(fā)、成都小程序開(kāi)發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開(kāi)發(fā),與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開(kāi)發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評(píng)估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
修改方法:只要將switch括號(hào)中的f改成true即可。
var?a?=?prompt("請(qǐng)輸入第一個(gè)成績(jī)");
var?b?=?prompt("請(qǐng)輸入第二個(gè)成績(jī)");
var?c?=?prompt("請(qǐng)輸入第三個(gè)成績(jī)");
var?d?=?prompt("請(qǐng)輸入第四個(gè)成績(jī)");
var?e?=?prompt("請(qǐng)輸入第五個(gè)成績(jī)");
var?f?=?(+a?+?+b?+?+c?+?+d?+?+e)/5;
switch(true){
case?(f60):alert("很差");
break;
case?(60=f??f70):alert("較差");
break;
case?(70=f??f80):alert("一般");
break;
case?(80=f??f90):alert("良好");
break;
case?(f=90):alert("優(yōu)秀");
break;
}
順便說(shuō)一下,這個(gè)問(wèn)題與HTML5無(wú)關(guān),是JavaScript的問(wèn)題。
首先這一段代碼并不是html5的javascript新特性,而是引用的jquery插件庫(kù)
這一段代碼的主要功能是向一個(gè)地址發(fā)送了一個(gè)ajax請(qǐng)求,代碼根據(jù)返回結(jié)果執(zhí)行不同的操作
傳值2進(jìn)入的話,ajax請(qǐng)求中的tran_type將被賦值為2,id為calc_list的元素中的data-url屬性是請(qǐng)求地址
當(dāng)請(qǐng)求成功時(shí),根據(jù)返回結(jié)果的code的值執(zhí)行相應(yīng)操作
為4時(shí),彈出錯(cuò)誤信息
為50時(shí),跳轉(zhuǎn)頁(yè)面
其他值時(shí),更改鏈接下p標(biāo)簽的樣式(移除class:buttom-my2,新增class:buttom-my1),并修改一些鏈接下元素的文本(修改id為w_rank,t_rank,log_credit,tran_name的元素文本為服務(wù)器返回值)
這跟HTML5有何關(guān)系呢?
你應(yīng)該在頁(yè)面里用JS去判斷,從window.navigator.userAgent中可以獲取用戶所使用的環(huán)境信息,包含操作系統(tǒng)、瀏覽器信息等,例如我的瀏覽器取到的信息是:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11
其中的Windows NT 6.1就表示使用的是windows系統(tǒng)。
不是,ev只是一個(gè)參數(shù),相當(dāng)于一個(gè)代名詞一個(gè)編號(hào),可以是任意數(shù)值,字符。再說(shuō)簡(jiǎn)單點(diǎn)比如說(shuō)人,可以是大人也可以是小孩,可以是男人也可以是女人
document.createElement(’article’);//創(chuàng)建文章標(biāo)簽
document.createElement(’header’);//創(chuàng)建頭部標(biāo)簽
//清both
footer{clear :both}
//設(shè)置文章標(biāo)簽可見(jiàn)
article{display:block}
除非最終檢索它們并利用它們來(lái)做點(diǎn)事情,否則將記錄放入數(shù)據(jù)庫(kù)沒(méi)什么好處。這就是 SELECT 語(yǔ)句的用途,即幫助取出數(shù)據(jù)。SELECT 大概是 SQL 語(yǔ)言中最常用的語(yǔ)句,而且怎樣使用它也最為講究;用它來(lái)選擇記錄可能相當(dāng)復(fù)雜,可能會(huì)涉及許多表中列之間的比較。本節(jié)介紹Select語(yǔ)句關(guān)于查詢的最基本功能。
SELECT 語(yǔ)句的語(yǔ)法如下:
SELECT selection_list 選擇哪些列
FROM table_list 從何處選擇行
WHERE primary_constraint 行必須滿足什么條件
GROUP BY grouping_columns 怎樣對(duì)結(jié)果分組
HAVING secondary_constraint 行必須滿足的第二條件
ORDER BY sorting_columns 怎樣對(duì)結(jié)果排序
LIMIT count 結(jié)果限定
注意:所有使用的關(guān)鍵詞必須精確地以上面的順序給出。例如,一個(gè)HAVING子句必須跟在GROUP BY子句之后和ORDER BY子句之前。
除了詞“SELECT”和說(shuō)明希望檢索什么的 column_list 部分外,語(yǔ)法中的每樣?xùn)|西都是可選的。有的數(shù)據(jù)庫(kù)還需要 FROM 子句。MySQL 有所不同,它允許對(duì)表達(dá)式求值而不引用任何表。
查詢特定行:
你能從你的表中只選擇特定的行。例如,如果你想要驗(yàn)證你對(duì)Bowser的出生日期所做的改變,像這樣精選Bowser的記錄:
mysql SELECT * FROM pet WHERE name = "Bowser";
其結(jié)果為:
+--------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+-------+---------+------+------------+------------+
| Bowser | Diane | dog | m | 1990-08-31 | 1995-07-29 |
+--------+-------+---------+------+------------+------------+
你可以對(duì)照前一個(gè)例子來(lái)驗(yàn)證。
進(jìn)行表達(dá)式計(jì)算
前面的多數(shù)查詢通過(guò)從表中檢索值已經(jīng)產(chǎn)生了輸出結(jié)果。MySQL 還允許作為一個(gè)公式的結(jié)果來(lái)計(jì)算輸出列的值。表達(dá)式可以簡(jiǎn)單也可以復(fù)雜。下面的查詢求一個(gè)簡(jiǎn)單表達(dá)式的值(常量)以及一個(gè)涉及幾個(gè)算術(shù)運(yùn)算符和兩個(gè)函數(shù)調(diào)用的較復(fù)雜的表達(dá)式的值。例如,計(jì)算Browser生活的天數(shù):
mysql SELECT death-birth FROM pet WHERE name="Bowser";
其結(jié)果是:
+-------------+
| death-birth |
+-------------+
| 49898 |
+-------------+
由于MySQL允許對(duì)表達(dá)式求值而不引用任何表。所以也可以這樣使用:
mysqlselect (2+3*4.5)/2.5;
其結(jié)果為:
+---------------+
| (2+3*4.5)/2.5 |
+---------------+
| 6.200 |
+---------------+
條件查詢
不必每次查詢都返回所有的行記錄,你能從你的表中只選擇特定的行。為此你需要使用WHERE或者HAVING從句。HAVING從句與WHERE從句的區(qū)別是,HAVING表達(dá)的是第二條件,在與其他從句配合使用,顯然不能在WHERE子句中的項(xiàng)目使用HAVING。因此本小節(jié)緊介紹WHERE從句的使用,HAVING從句的使用方法類似。另外WHERE從句也可以實(shí)現(xiàn)HAVING從句的絕大部分功能。
為了限制 SELECT 語(yǔ)句檢索出來(lái)的記錄集,可使用 WHERE 子句,它給出選擇行的條件??赏ㄟ^(guò)查找滿足各種條件的列值來(lái)選擇行。
WHERE 子句中的表達(dá)式可使用表1 中的算術(shù)運(yùn)算符、表2 的比較運(yùn)算符和表3 的邏輯運(yùn)算符。還可以使用圓括號(hào)將一個(gè)表達(dá)式分成幾個(gè)部分??墒褂贸A?、表列和函數(shù)來(lái)完成運(yùn)算。在本教程的查詢中,我們有時(shí)使用幾個(gè) MySQL 函數(shù),但是 MySQL 的函數(shù)遠(yuǎn)不止這里給出的這些。請(qǐng)參閱附錄 一,那里給出了所有MySQL 函數(shù)的清單。
例如,如果你想要驗(yàn)證你對(duì)Bowser的出生日期所做的改變,像這樣精選Bowser的記錄:
mysql SELECT * FROM pet WHERE name = "Bowser";
+--------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+-------+---------+------+------------+------------+
| Bowser | Diane | dog | m | 1990-08-31 | 1995-07-29 |
+--------+-------+---------+------+------------+------------+
輸出證實(shí)出生年份現(xiàn)在正確記錄為1990,而不是1909。
字符串比較通常是大小些無(wú)關(guān)的,因此你可以指定名字為"bowser"、"BOWSER"等等,查詢結(jié)果將是相同的。
你能在任何列上指定條件,不只是name。例如,如果你想要知道哪個(gè)動(dòng)物在1998以后出生的,測(cè)試birth列:
mysql SELECT * FROM pet WHERE birth = "1998-1-1";
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+-------+---------+------+------------+-------+
你能組合條件,例如,找出雌性的狗:
mysql SELECT * FROM pet WHERE species = "dog" AND sex = "f";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+
上面的查詢使用AND邏輯操作符,也有一個(gè)OR操作符:
mysql SELECT * FROM pet WHERE species = "snake" OR species = "bird";
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
+----------+-------+---------+------+------------+-------+
AND和OR可以混用。如果你這樣做,使用括號(hào)指明條件應(yīng)該如何被分組是一個(gè)好主意:
mysql SELECT * FROM pet WHERE (species = "cat" AND sex = "m")
- OR (species = "dog" AND sex = "f");
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+
查詢排序
使用ORDER BY子句對(duì)查詢返回的結(jié)果按一列或多列排序。ORDER BY子句的語(yǔ)法格式為:
ORDER BY column_name [ASC|DESC] [,…]
其中ASC表示升序,為默認(rèn)值,DESC為降序。ORDER BY不能按text、text和image數(shù)據(jù)類型進(jìn)行排 序。另外,可以根據(jù)表達(dá)式進(jìn)行排序。
例如,這里是動(dòng)物生日,按日期排序:
mysql SELECT name, birth FROM pet ORDER BY birth;
+----------+------------+
| name | birth |
+----------+------------+
| Buffy | 1989-05-13 |
| Fang | 1990-08-27 |
| Bowser | 1990-08-31 |
| Fluffy | 1993-02-04 |
| Claws | 1994-03-17 |
| Slim | 1996-04-29 |
| Whistler | 1997-12-09 |
| Chirpy | 1998-09-11 |
| Puffball | 1999-03-30 |
+----------+------------+
為了以逆序排序,增加DESC(下降 )關(guān)鍵字到你正在排序的列名上:
mysql SELECT name, birth FROM pet ORDER BY birth DESC;
+----------+------------+
| name | birth |
+----------+------------+
| Puffball | 1999-03-30 |
| Chirpy | 1998-09-11 |
| Whistler | 1997-12-09 |
| Slim | 1996-04-29 |
| Claws | 1994-03-17 |
| Fluffy | 1993-02-04 |
| Bowser | 1990-08-31 |
| Fang | 1990-08-27 |
| Buffy | 1989-05-13 |
+----------+------------+
你能在多個(gè)列上排序。例如,按動(dòng)物的種類排序,然后按生日,首先是動(dòng)物種類中最年輕的動(dòng)物,使用下列查詢:
mysql SELECT name, species, birth FROM pet ORDER BY species, birth DESC;
+----------+---------+------------+
| name | species | birth |
+----------+---------+------------+
| Chirpy | bird | 1998-09-11 |
| Whistler | bird | 1997-12-09 |
| Claws | cat | 1994-03-17 |
| Fluffy | cat | 1993-02-04 |
| Bowser | dog | 1990-08-31 |
| Fang | dog | 1990-08-27 |
| Buffy | dog | 1989-05-13 |
| Puffball | hamster | 1999-03-30 |查詢分組與行計(jì)數(shù)
GROUP BY 從句根據(jù)所給的列名返回分組的查詢結(jié)果,可用于查詢具有相同值的列。其語(yǔ)法為:
GROUP BY col_name,….
你可以為多個(gè)列分組。
例如:
mysqlSELECT * FROM pet GROUP BY species;
+----------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
+----------+--------+---------+------+------------+-------+
由以上結(jié)果可以看出:
查詢顯示結(jié)果時(shí),被分組的列如果有重復(fù)的值,只返回靠前的記錄,并且返回的記錄集是排序的。這并不是一個(gè)很好的結(jié)果。僅僅使用GROUP BY從句并沒(méi)有什么意義,該從句的真正作用在于與各種組合函數(shù)配合,用于行計(jì)數(shù)。
1、COUNT()函數(shù)計(jì)數(shù)非NULL結(jié)果的數(shù)目。
你可以這樣計(jì)算表中記錄行的數(shù)目:
mysql select count(*) from pet;
+----------+
| count(*) |
+----------+
| 9 |
+----------+
計(jì)算sex為非空的記錄數(shù)目:
mysql select count(sex) from pet;
+------------+
| count(sex) |
+------------+
| 8 |
+------------+
現(xiàn)在配合GROUP BY 從句使用。
例如:要知道每個(gè)主人有多少寵物
mysql SELECT owner, COUNT(*) FROM pet GROUP BY owner;
+--------+----------+
| owner | COUNT(*) |
+--------+----------+
| Benny | 2 |
| Diane | 2 |
| Gwen | 3 |
| Harold | 2 |
+--------+----------+
又如,每種寵物的個(gè)數(shù):
mysql SELECT species,count(*) FROM pet GROUP BY species;
+---------+----------+
| species | count(*) |
+---------+----------+
| bird | 2 |
| cat | 2 |
| dog | 3 |
| hamster | 1 |
| snake | 1 |
+---------+----------+
如果你除了計(jì)數(shù)還返回一個(gè)列的值,那么必須使用GROU BY語(yǔ)句,否則無(wú)法計(jì)算記錄。例如上例,使用GROUP BY對(duì)每個(gè)owner分組所有記錄,沒(méi)有它,你得到的一切是一條錯(cuò)誤消息:
mysql SELECT owner, COUNT(owner) FROM pet;
ERROR 1140 at line 1: Mixing of GROUP columns (MIN(),MAX(),COUNT()...)
with no GROUP columns is illegal if there is no GROUP BY clause
也可以根據(jù)多個(gè)列分組,例如:
按種類和性別組合的動(dòng)物數(shù)量:
mysql SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| bird | NULL | 1 |
| bird | f | 1 |
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
| hamster | f | 1 |
| snake | m | 1 |
+---------+------+----------+
| Slim | snake | 1996-04-29 |
+----------+---------+------------+
注意DESC關(guān)鍵詞僅適用于緊跟在它之前的列名字(birth);species值仍然以升序被排序。注意,輸出首先按照species排序,然后具有相同species的寵物再按照birth降序排列。
查詢多個(gè)表
查詢多個(gè)表,F(xiàn)ROM子句列出表名,并用逗號(hào)分隔,因?yàn)椴樵冃枰獜乃麄儍蓚€(gè)拉出信息。
當(dāng)組合(聯(lián)結(jié)-join)來(lái)自多個(gè)表的信息時(shí),你需要指定在一個(gè)表中的記錄怎樣能匹配其它表的記錄。這很簡(jiǎn)單,因?yàn)樗鼈兌加幸粋€(gè)name列。查詢使用WHERE子句基于name值來(lái)匹配2個(gè)表中的記錄。
因?yàn)閚ame列出現(xiàn)在兩個(gè)表中,當(dāng)引用列時(shí),你一定要指定哪個(gè)表。這通過(guò)把表名附在列名前做到。
現(xiàn)在有一個(gè)event表:
mysqlselect * from event;
+----------+------------+----------+-----------------------------+
| name | date | type | remark |
+----------+------------+----------+-----------------------------+
| Fluffy | 1995-05-15 | litter | 4 kittens, 3 female, 1 male |
| Buffy | 1993-06-23 | litter | 5 puppies, 2 female, 3 male |
| Buffy | 1994-06-19 | litter | 3 puppies, 3 female |
| Chirpy | 1999-03-21 | vet | needed beak straightened |
| Slim | 1997-08-03 | vet | broken rib |
| Bowser | 1991-10-12 | kennel | NULL |
| Fang | 1991-10-12 | kennel | NULL |
| Fang | 1998-08-28 | birthday | Gave him a new chew toy |
| Claws | 1998-03-17 | birthday | Gave him a new flea collar |
| Whistler | 1998-12-09 | birthday | First birthday |
+----------+------------+----------+-----------------------------+
同樣方法也可用于同一張表中,你不必有2個(gè)不同的表來(lái)執(zhí)行一個(gè)聯(lián)結(jié)。如果你想要將一個(gè)表的記錄與同一個(gè)表的其他記錄進(jìn)行比較,聯(lián)結(jié)一個(gè)表到自身有時(shí)是有用的。例如,為了在你的寵物之中繁殖配偶,你可以用pet聯(lián)結(jié)自身來(lái)進(jìn)行相似種類的雄雌配對(duì):
mysql SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species
- FROM pet AS p1, pet AS p2
- WHERE p1.species = p2.species AND p1.sex = "f" AND p2.sex = "m";
+--------+------+--------+------+---------+
| name | sex | name | sex | species |
+--------+------+--------+------+---------+
| Fluffy | f | Claws | m | cat |
| Buffy | f | Fang | m | dog |
| Buffy | f | Bowser | m | dog |
+--------+------+--------+------+---------+