【七】條件判斷

JavaScript使用if() { ... } else { ... }來進行條件判斷。例如,根據年齡顯示不同內容,可以用if語句實現如下:

var age = 20;
if(age >= 18){  // 如果age >= 18 為true,則執行if語句塊
    alert('adult');
}else {  // 否則執行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.lg('age < 18'); // 添加一行日志
    alert('teenager'); // ←這行語句已經不在else的控制范圍了

上述代碼的else子句實際上只負責執行console.log('age < 18'); , 原有的alert('teenager'); 已經不屬于if... else ...的控制范圍了,它每次都會執行。
相反地,有{}的語句就不會出錯:

var age = 20;
if(age >= 18){
    alert('adult');
} else {
    console.log('age < 18');
    alert('teenager');
}

這就是為什么我們建議永遠都要寫上{}。

</br>
<h3>多行條件判斷</h3>
如果還要更細致地判斷條件,可以使用多個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 不要略掉{ }。
<u>請注意,if ... else ... 語句的執行特點是二選一,在多個if ... else ...語句中,如果某個條件成立,則后續就不要再繼續判斷了。</u>
</br>
<u>JavaScript把null、undefined、0、NaN和空字符串' '視為false,其他值一概視為true,如果if(s.length) ,s.length的結果是3,則判斷的結果是true</u>。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容