表達(dá)式和語句
表達(dá)式:一個(gè)表達(dá)式可以產(chǎn)生一個(gè)值,有可能是運(yùn)算涛舍、函數(shù)調(diào)用澄惊、有可能是字面量。表達(dá)式可以放在任何需要值的地方富雅。特點(diǎn):表達(dá)式會(huì)先執(zhí)行出一個(gè)結(jié)果掸驱,然后再參與其他程序。
語句:語句可以理解為一個(gè)行為没佑,循環(huán)語句和判斷語句就是典型的語句毕贼。一個(gè)程序有很多個(gè)語句組成,一般情況下分號(hào) ; 分割一個(gè)一個(gè)的語句蛤奢。語句可以認(rèn)為是給計(jì)算機(jī)的一個(gè)指令鬼癣,執(zhí)行這段代碼。一般語句以分號(hào)結(jié)束远剩,特殊的結(jié)構(gòu)除外扣溺。
流程控制語句:通過一些特殊結(jié)構(gòu)可以讓 js 代碼加載時(shí)骇窍,要么可以跳過一部分不加載瓜晤,或者可以循環(huán)加載一段代碼。包括:條件分支語句腹纳、循環(huán)語句痢掠。
if 語句
if 語句是最常用的條件分支語句驱犹,作用就是通過某個(gè)指定的判斷條件,決定走哪個(gè)分支的代碼足画。
結(jié)構(gòu)如下:
if (condition expression) {
statement1;
} else {
statement2;
}
- condition expression:條件表達(dá)式雄驹,可以是任意的代碼或者表達(dá)式,參與程序過程都會(huì)強(qiáng)制得到一個(gè)布爾值執(zhí)行結(jié)果淹辞。表達(dá)式医舆,js 中遇到任何表達(dá)式都會(huì)先計(jì)算出一個(gè)結(jié)果然后才能繼續(xù)參與程序。
- statement:結(jié)構(gòu)體象缀,js 中可以用 {} 包括一行到多行語句蔬将,這些語句整體組成了一個(gè)結(jié)構(gòu)體,結(jié)構(gòu)體中的語句要執(zhí)行就都執(zhí)行央星,要不執(zhí)行就都不執(zhí)行霞怀。
- if:如果
- else:否則
總結(jié):如果條件表達(dá)式為真 true,執(zhí)行結(jié)構(gòu)體 1莉给,否則執(zhí)行結(jié)構(gòu)體 2毙石。
注意事項(xiàng)
- if 語句可以實(shí)現(xiàn)選擇的功能,兩個(gè)分支可以選擇一個(gè)執(zhí)行颓遏,不會(huì)都執(zhí)行徐矩。
- if 語句可以不寫 else 分支,表示條件成立就執(zhí)行后面的結(jié)構(gòu)體叁幢,如果條件不成立丧蘸,直接跳出 if 語句不執(zhí)行。
- if 語句后面的機(jī)構(gòu)體如果是單行語句組成遥皂,可以省略 {} 不寫力喷。不建議省略大括號(hào),容易出現(xiàn)程序錯(cuò)誤演训。
- if 語句能夠控制自己內(nèi)部的流程弟孟,但是不論走哪個(gè)分支,結(jié)束后都要繼續(xù)執(zhí)行 if 語句后面的其他語句样悟,叫做殊途同歸現(xiàn)象拂募。
多分支 if 語句
包含多個(gè)判斷條件,對(duì)應(yīng)多個(gè)分支窟她。
語法:if……else if……else if……else……
如果……否則如果……否則如果…… 否則……
結(jié)構(gòu)如下:
if (條件1) {
滿足條件1陈症,執(zhí)行的結(jié)構(gòu)體
} else if (條件2) {
不滿足條件1,滿足條件2震糖,執(zhí)行的結(jié)構(gòu)體
} else if (條件3) {
不滿足條件1/2录肯,滿足條件3,執(zhí)行的結(jié)構(gòu)體
} else {
不滿足前面所有條件吊说,執(zhí)行的結(jié)構(gòu)體
}
注意事項(xiàng)
- 多分支 if 語句中可以有多個(gè) else if 的分支论咏,但是 else 分支只能有一個(gè)优炬,必須出現(xiàn)在最后,作為備用的選項(xiàng)厅贪,而且 else 也可以省略不寫蠢护,表示前面條件如果都不滿足,直接跳出不走任何分支养涮。
- 多分支 if 語句有跳樓現(xiàn)象:條件從上往下依次驗(yàn)證葵硕,如果滿足了某個(gè)條件,會(huì)立即執(zhí)行后面的結(jié)構(gòu)體贯吓,執(zhí)行完之后贬芥,不會(huì)再往后驗(yàn)證其他的條件了,而是從這一層直接跳樓跳出if語句宣决,這就是跳樓現(xiàn)象蘸劈。
if 語句嵌套
if 語句的結(jié)構(gòu)體部分,代碼可以是任意的代碼尊沸,甚至是另外一組 if 語句威沫,也就是 if 語句內(nèi)部嵌套了 if 語句。如果想執(zhí)行內(nèi)部 if 語句的某個(gè)分支洼专,必須滿足外部 if 語句的條件棒掠,同時(shí)還要滿足內(nèi)部 if 語句的某個(gè)條件。優(yōu)點(diǎn)是可以簡化多分支 if 語句屁商。
三元表達(dá)式
三元表達(dá)式又叫三元運(yùn)算符烟很,必須有三個(gè)操作數(shù)參與的運(yùn)算。操作符號(hào):? :
蜡镶。
在參與 js 程序時(shí)雾袱,都必須先計(jì)算出表達(dá)式結(jié)果,才能參與后續(xù)程序官还,由于三元表達(dá)式具備了一些選擇的效果芹橡,所以也是一種條件分支語句。
語法:boolean_expression ? true_value : false_value;
- boolean_expression:布爾表達(dá)式望伦,表達(dá)式在參與三元運(yùn)算中必須求得一個(gè)布爾類型的值林说,要么是 true,要么是 false屯伞,結(jié)果作為判斷依據(jù)腿箩,判斷到底去:前面的值還是后面的值。
- true_value:布爾表達(dá)式的值為真時(shí)劣摇,三元表達(dá)式的結(jié)果珠移。
- false_value:布爾表達(dá)式的值為假時(shí),三元表達(dá)式的結(jié)果。
作用:根據(jù)布爾表達(dá)式的結(jié)果剑梳,如果為真唆貌,三元表達(dá)式結(jié)果就是真值滑潘,如果為假垢乙,三元表達(dá)式結(jié)果就是假值。
雖然 if 語句可以模擬三元表達(dá)式语卤,但是三元表達(dá)式有自己的優(yōu)點(diǎn):
- 二選一的情況下追逮,三元表達(dá)式結(jié)構(gòu)更加簡單。
- 三元表達(dá)式作為一個(gè)表達(dá)式參與程序時(shí)必須運(yùn)算出結(jié)果才能參與粹舵,可以利用這個(gè)特點(diǎn)钮孵,將二選一結(jié)果賦值給一個(gè)變量。
遇到給一個(gè)變量根據(jù)條件二選一賦值的情況眼滤,可以使用三元表達(dá)式巴席。
switch語句
開關(guān)語句允許一個(gè)程序求一個(gè)表達(dá)式的值,并且嘗試去匹配表達(dá)式的值到一個(gè) case 標(biāo)簽诅需。如果匹配成功漾唉,這個(gè)程序執(zhí)行相關(guān)的語句。
語法結(jié)構(gòu)如下:
switch (表達(dá)式) {
case 值1:
結(jié)構(gòu)體1;
break;
case 值2:
結(jié)構(gòu)體2;
break;
……
default:
結(jié)構(gòu)體n堰塌;
break;
}
- switch:關(guān)鍵字表示開始進(jìn)入一個(gè)開關(guān)語句赵刑。
- 表達(dá)式:會(huì)求出一個(gè)具體的值,將這個(gè)值去與 {} 內(nèi)部的 case 后面的值進(jìn)行對(duì)比场刑、匹配般此,如果值相等表示匹配成功。匹配相等時(shí)牵现,方式是進(jìn)行全等于匹配铐懊,不止值要相等,數(shù)據(jù)類型也要相等瞎疼。
- case:示例的意思居扒,作為關(guān)鍵字后面必須跟一個(gè)空格,書寫匹配的值丑慎。
- case 后面的結(jié)構(gòu)體:每個(gè) case 匹配成功之后要執(zhí)行的語句喜喂。
- break:用于打斷結(jié)構(gòu)體,直接跳出程序竿裂,模擬跳樓現(xiàn)象玉吁。
- default:相當(dāng)于if語句中的 else,否則的情況腻异,如果前面的 case 都不匹配进副,執(zhí)行 default 后面的語句。
switch 語句首先會(huì)將小括號(hào)內(nèi)的表達(dá)式計(jì)算出一個(gè)結(jié)果,用結(jié)果去匹配結(jié)構(gòu)體內(nèi)部的 case影斑;從上往下進(jìn)行匹配给赞,如果匹配成功,會(huì)立即執(zhí)行這個(gè) case 后面的語句矫户,直到遇到一個(gè) break 跳出整個(gè) switch 語句片迅;如果前面的 case 沒有匹配成功,會(huì)跳過 case 之間的語句皆辽,去匹配下一個(gè) case柑蛇,直到匹配成功,如果都不成功就執(zhí)行 default 后面的語句驱闷。
注意事項(xiàng)
- default 可以不寫耻台,相當(dāng)于 if 語句沒有 else。
- break 關(guān)鍵字:根據(jù)結(jié)構(gòu)需要有時(shí)必須在每個(gè) case 后面都要寫空另,為了模擬跳樓現(xiàn)象盆耽,如果不寫 break,對(duì)應(yīng)的 case 后面的語句執(zhí)行之后扼菠,不會(huì)跳出結(jié)構(gòu)體摄杂,會(huì)繼續(xù)想下執(zhí)行其他 case 的后面的語句,直到遇到一個(gè) break娇豫。
總結(jié)
總結(jié):實(shí)際工作中使用三種語句的情景匙姜。
if 語句:最常用的語句,所有的判斷情況都能夠書寫冯痢。
三元表達(dá)式:多用于給變量賦值根據(jù)條件二選一的情況氮昧。
switch 語句:多用于給一個(gè)表達(dá)式去匹配多種固定值可能性的情況。