编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

JavaScript中switch容易被忽视的细节

通常我们使用条件判断是使用 if ,但如果需要判断的情况较多,或是对每一个枚举的值都需要做不同处理,就会用到 switch 语句,不同条件执行不同代码块,首先来看一段代码

var num = '5';
switch(num){
    case 5:
        console.log('result is ' + num);
        break;
    default:
        console.log('this is default branch');
}
//this is default branch

执行的代码块好像和期待的结果不一样,代码走到了 default 分支。使用 if 语句来试试

var num = '5';
if(num == 5)
    console.log('match');
else
    console.log('no match');
//match

使用 if 判断结果是正确的!那么,使用严格比较

var num = '5';
if(num === 5)
    console.log('match');
else
    console.log('no match');
//no match

这里的结果就和 switch 的结果一致了,说明 switch 中对于判断是使用的严格判断,那么修改 switch 中的判断条件,结果就满足期望了

var num = '5';
switch(num){
    case '5':
        console.log('result is ' + num);
        break;
    default:
        console.log('this is default branch');
}
//result is 5


未经允许不得转载: 技术文章 » javascript » JavaScript中switch容易被忽视的细节