if條件語句
有時(shí)我們需要根據(jù)不同條件執(zhí)行不同的操作糊肤,我們可以使用 if
語句來實(shí)現(xiàn)稽煤。if(...)
語句計(jì)算括號(hào)里的條件表達(dá)式,如果計(jì)算結(jié)果是 true
耘斩,就會(huì)執(zhí)行對應(yīng)的代碼塊合陵。
例如:
var a = 5;//a是變量可以定義任何值
if( a > 0 ){
console.log(a+"是正數(shù)"); //條件成立枢赔,執(zhí)行后面的代碼塊
}
if (…)
語句會(huì)計(jì)算圓括號(hào)內(nèi)的表達(dá)式,并將計(jì)算結(jié)果轉(zhuǎn)換為布爾型拥知。數(shù)字 0
踏拜、空字符串 ""
、null
低剔、undefined
和 NaN
都會(huì)被轉(zhuǎn)換成 false
速梗。因?yàn)樗鼈儽环Q為“假值(falsy)”值。其他值被轉(zhuǎn)換為 true
襟齿,所以它們被稱為“真值(truthy)”姻锁。
else 語句
if
語句有時(shí)會(huì)包含一個(gè)可選的 "else" 塊。如果判斷條件不成立猜欺,就會(huì)執(zhí)行它內(nèi)部的代碼位隶。比如上面的代碼可以再次判斷:
var a = -5;//a是變量可以定義任何值
if( a > 0 ){
console.log(a+"是正數(shù)");
}else{
console.log(a+"是負(fù)數(shù)");//if條件不成立 執(zhí)行else的代碼塊
}
多個(gè)條件 else if
有時(shí)我們需要測試一個(gè)條件的幾個(gè)變體。我們可以通過使用 else if
子句實(shí)現(xiàn)开皿。比如上面的else語句還有一點(diǎn)不合理的地方涧黄,因?yàn)?既不是負(fù)數(shù)也不是整數(shù)。
var a = 0;//a是變量可以定義任何值
if( a > 0 ){
console.log(a+"是正數(shù)");
}else if( a = 0 ){
console.log(a+"既不是負(fù)數(shù)也不是正數(shù)");
}else{
console.log(a+"是負(fù)數(shù)");//if條件不成立 執(zhí)行else的代碼塊
}
可以有更多的
else if
塊赋荆,結(jié)尾的else
也不是必須的笋妥。
switch分支語句
switch
語句可以替代多個(gè) if
判斷。switch
語句為多分支選擇的情況提供了一個(gè)更具描述性的方式糠睡。
switch
語句有至少一個(gè) case
代碼塊和一個(gè)可選的 default
代碼塊挽鞠。比如下面這樣
var a = 12;//a可以是任意值
switch(a%2){
case 0:
console.log(a+"是偶數(shù)");
break;
case 1:
console.log(a+"是奇數(shù)");
break;
default:
console.log("----");//可選的分支語句疚颊,當(dāng)上面的分支不可執(zhí)行時(shí)會(huì)執(zhí)行default語句
}
break關(guān)鍵字用于跳出switch語句狈孔,如果缺少break會(huì)出現(xiàn)多個(gè)分支被執(zhí)行的情況。當(dāng)前如果沒有符合的 case材义,則執(zhí)行
default
代碼塊(如果default
存在)均抽。
case 分組
switch/case
有通過 case 進(jìn)行“分組”的能力,其實(shí)是 switch 語句沒有 break
時(shí)的副作用其掂。如果幾個(gè) case
分支可以被分為一組油挥,那么它們可以共享一段代碼
var a = 5;//假設(shè)a是星期的某一天
switch(a){
case 1:
case 2:
case 3:
case 4:
case 5:
console.log(a+"是工作日");
break;
case 6:
case 7:
console.log(a+"是休息日");
break;
}
switch 中 case的判斷是===的判斷,即數(shù)據(jù)類型和值的雙重判斷,這點(diǎn)要注意深寥。另外switch的判斷條件可以是String 攘乒、Number、Boolean惋鹅、char则酝、枚舉、null闰集、undefined