JavaScript使用if () { ... } else { ... }來進行條件判斷。例如,根據(jù)年齡顯示不同內(nèi)容,可以用if語句實現(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');省略{}的危險之處在于,如果后來想添加一些語句,卻忘了寫{},就改變了if...else...的語義,例如:
var age = 20;if (age >= 18) alert('adult');else console.log('age < 18'); // 添加一行日志 alert('teenager'); // <- 這行語句已經(jīng)不在else的控制范圍了上述代碼的else子句實際上只負責(zé)執(zhí)行console.log('age < 18');,原有的alert('teenager');已經(jīng)不屬于if...else...的控制范圍了,它每次都會執(zhí)行。
相反地,有{}的語句就不會出錯:
var age = 20;if (age >= 18) { alert('adult');} else { console.log('age < 18'); alert('teenager');}這就是為什么我們建議永遠都要寫上{}。
多行條件判斷
如果還要更細致地判斷條件,可以使用多個if...else...的組合:
var age = 3;if (age >= 18) { alert('adult');} else if (age >= 6) { alert('teenager');} else { alert('kid');}上述多個if...else...的組合實際上相當于兩層if...else...:
var age = 3;if (age >= 18) { alert('adult');} else { if (age >= 6) { alert('teenager'); } else { alert('kid'); }}但是我們通常把else if連寫在一起,來增加可讀性。這里的else略掉了{}是沒有問題的,因為它只包含一個if語句。注意最后一個單獨的else不要略掉{}。
請注意,if...else...語句的執(zhí)行特點是二選一,在多個if...else...語句中,如果某個條件成立,則后續(xù)就不再繼續(xù)判斷了。
新聞熱點
疑難解答