JavaScript_基礎語法:switch判斷式

switch與if的差異

if else 會把每個條件跟程式碼都檢視過一次,而 switch 只會去檢視 case 內的條件是否吻合,吻合才去執行程式碼區塊,相對來說,if else 會比較消耗效能,因if語法瀏覽器會都進行處理,而switch需對應後才處理,並且跑到指定需求後便停止。除了比if語法有較快的效率,使程式碼更好閱讀,同時效能較佳,

使用時機

如有確定特定狀態便推薦使用switch,ex:只有紅燈、黃燈、綠燈三種

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var light = yellow;

switch(light){
// 如果是紅色就執行這區塊的程式碼
case 'red':
console.log('現在是'+light);
break;
// 如果是黃色就執行這區塊的程式碼
case 'yellow':
console.log('現在是'+light);
break;
// 如果上述都沒有符合的條件,就執行這區塊的程式碼
default:
console.log('現在是綠燈');
break;
}
}
switch嚴謹模式
1
2
3
4
5
6
7
8
9
10
11
12
13
var n = '5';
switch(n){
case 5:
console.log('success');
break;

default:
console.log('fail');
break;
}
// console 輸出 fail

}

看起來同樣的判斷卻在 switch 和 if else 上有著不一樣的結果,這是因為 switch 在判斷上採取嚴謹模式,亦即 ===(即型別也要相同),而在 if else 的判斷上並沒有採取這麼嚴謹的模式,需更改case’5’才能正確運行

1
2
3
4
5
6
7
8
9
10
11
12
13

switch(n){
case '5':
console.log('success');
break;

default:
console.log('fail');
break;
}
// console 輸出 success

}