JavaScript判斷if/else 語句
if (条件 1)
{
当条件 1 为 true 时执行的代码;
}
else if (条件 2)
{
当条件 2 为 true 时执行的代码;
}
else
{
当条件 1 和 条件 2 都不为 true 时执行的代码;
}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.log('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');
}#這就是為什麼我們建議永遠都要寫上{}。
多行條件判斷
如果還要更細緻地判斷條件,可以使用多個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...語句的執行特點是二選一,在多個if...else...語句中,如果某個條件成立,則後續就不再繼續判斷了。
試解釋為什麼下面的程式碼顯示的是teenager:
'use strict';
var age = 20;
if (age >= 6) {
alert('teenager');
} else if (age >= 18) {
alert('adult');
} else {
alert('kid');
}由於age的值為20,它實際上同時滿足條件age >= 6和age >= 18,這說明條件判斷的順序非常重要。請修復後讓其顯示adult。
如果if的條件判斷語句結果不是true或false怎麼辦?例如:
var s = '123';
if (s.length) { // 条件计算结果为3
//
}JavaScript把null、undefined、0、NaN和空字串''視為false,其他值一概視為true,因此上述程式碼條件判斷的結果是true。
- 課程推薦
- 課件下載
課件暫不提供下載,工作人員正在整理中,後期請多關注該課程~ 















