switch语句是否等于===或==?

时间:2014-08-08 08:56:32

标签: javascript comparison switch-statement

Javascript switch语句是严格比较还是通过类型转换进行比较?

3 个答案:

答案 0 :(得分:6)

我无法相信提出这个问题要比尝试这个问题更快:

var v = "1";

switch (v) {
    case 1:
        alert ("No");
        break;
    default:
        alert ("Yes");
}

在回答您的问题时,它是===

答案 1 :(得分:3)

它只使用严格的比较。特别是,即使没有找到严格匹配,它也永远不会退回到类型强制 - 它会立即跳到默认条款,如果有的话。来自MDN

  

程序首先查找case子句,其表达式的计算结果与输入表达式的值相同(使用strict comparison===),然后将控制转移到该子句,执行相关陈述。如果未找到匹配的case子句,程序将查找可选的default子句...

答案 2 :(得分:0)

根据MDN 它使用严格的比较。

  

程序首先查找一个case子句,其表达式的计算结果与输入表达式的值相同(使用严格比较,===),然后将控制转移到该子句,执行相关的语句。