JavaScript使用if() { ... } else { ... }來進(jìn)行條件判斷线得。例如,根據(jù)年齡顯示不同內(nèi)容徐伐,可以用if語句實(shí)現(xiàn)如下:
var age = 20;
if(age >= 18){ // 如果age >= 18 為true贯钩,則執(zhí)行if語句塊
alert('adult');
}else { // 否則執(zhí)行else語句塊
alert('teenager');
}
其中else 語句是可選的。如果語句塊只包含一條語句办素,那么可以省略{}:
var age = 20;
if (age >= 18)
alert('adult');
else
alert('teenager');
省略{}的危險(xiǎn)之處在于角雷,如果后來想要添加一些語句,卻忘了寫{},就變成了if ... else ...的語義性穿,例如:
var age = 20;
if (age >= 18 )
alert('adult');
else
console.lg('age < 18'); // 添加一行日志
alert('teenager'); // ←這行語句已經(jīng)不在else的控制范圍了
上述代碼的else子句實(shí)際上只負(fù)責(zé)執(zhí)行console.log('age < 18'); , 原有的alert('teenager'); 已經(jīng)不屬于if... else ...的控制范圍了勺三,它每次都會(huì)執(zhí)行。
相反地需曾,有{}的語句就不會(huì)出錯(cuò):
var age = 20;
if(age >= 18){
alert('adult');
} else {
console.log('age < 18');
alert('teenager');
}
這就是為什么我們建議永遠(yuǎn)都要寫上{}吗坚。
</br>
<h3>多行條件判斷</h3>
如果還要更細(xì)致地判斷條件,可以使用多個(gè)if...else...的組合:
var age = 3;
if(age >= 18) {
alert('adult');
} else if(age >= 6) {
alert('teenager');
} else {
alert('kid');
}
上述多個(gè)if ... else ...的組合實(shí)際上相等于兩層if ... else ...:
var age = 3;
if (age >= 18) {
alert('adult');
} else {
if (age >= 6) {
alert('teenager');
} else {
alert('kid');
}
}
但是我們通常把else if 連寫在一起呆万,來增加可讀性商源。這里的else省略掉了{(lán) }是沒有問題的,因?yàn)樗话粋€(gè)if語句谋减。注意最后一個(gè)單獨(dú)的else 不要略掉{ }牡彻。
<u>請(qǐng)注意,if ... else ... 語句的執(zhí)行特點(diǎn)是二選一出爹,在多個(gè)if ... else ...語句中庄吼,如果某個(gè)條件成立,則后續(xù)就不要再繼續(xù)判斷了以政。</u>
</br>
<u>JavaScript把null霸褒、undefined伴找、0盈蛮、NaN和空字符串' '視為false,其他值一概視為true,如果if(s.length) 技矮,s.length的結(jié)果是3抖誉,則判斷的結(jié)果是true</u>。