iT邦幫忙

0

JavaScript 基礎知識-switch & if else 的判別差異

switchif 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

看起來同樣的判斷卻在 switchif 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

補充上一點小知識,希望大家在 switchif else 使用上也能稍微注意 /images/emoticon/emoticon07.gif


尚未有邦友留言

立即登入留言