JS Switch Case

作者:frank 发表日期:2016-08-24 11:21:52 更新日期:2016-08-24 11:21:52 分类:猿文色

摘要

JS Switch Case 一不小心的坑

正文

年轻时写的代码~~

先想想下述代码的打印结果:

var switchFun = function(param) {
    switch(param) {
        case null || undefined || '':
            console.log('expected');
            break;
        default: 
            console.log('unexpected');    
            break;
    }
}

switchFun(''); // log 'expected'

switchFun(undefined); // log 'unexpected'

switchFun(null); // log 'unexpected'

期望的打印结果是所有上述调用都输出‘expected’,为何呢?认真想想就明白了,‘case null || undefined || ''’ 相当于 ‘case ''’,因为他是个表达式啊啊!!!简单改一下就OK了:

var switchFun = function(param) {
    switch(param) {
        case null: 
        case undefined: 
        case '':
            console.log('expected');
            break;
        default: 
            console.log('unexpected');    
            break;
    }
}

switchFun(''); // log 'expected'

switchFun(undefined); // log 'expected'

switchFun(null); // log 'expected'