switch
跟 if else
的使用上,常常會有一個迷思在,以下就來舉個例子:
var n = '5';
switch(n){
case 5:
console.log('success');
break;
default:
console.log('fail');
break;
}
// console 輸出 fail
但如果換成 if else
的話:
if(n == 5){
console.log('success');
}else{
console.log('fail');
}
// console 輸出 success
看起來同樣的判斷卻在 switch
和 if else
上有著不一樣的結果,這是因為 switch
在判斷上採取嚴謹模式,亦即 ===
(即型別也要相同),而在 if else
的判斷上並沒有採取這麼嚴謹的模式
如果我們要在 switch
判斷上變成 success,則程式碼就要改寫如下:
switch(n){
case '5':
console.log('success');
break;
default:
console.log('fail');
break;
}
// console 輸出 success
而如果要在 if else
判斷上更為嚴謹一點,則改寫如下:
if(n === 5){
console.log('success');
}else{
console.log('fail');
}
// console 輸出 fail
補充上一點小知識,希望大家在 switch
和 if else
使用上也能稍微注意