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
使用上也能稍微注意