一尘不染

在JavaScript switch语句中进行严格比较是否安全?

javascript

我有一个可以为boolean false或整数(包括0)的变量。我想将其放在switch语句中,例如:

switch(my_var){
    case 0:
         // Do something
         break;
    case 1:
         // Do something else
         break;
    case false:
         // Some other code
}

在Google
Chrome浏览器中的测试中,它似乎可以完美运行,但是我有点紧张,因为我担心在某些浏览器中(如果有的话my_varfalse它可能会执行以来的第一种情况0 == false

我只是想知道JavaScript中是否有任何官方的说法,说switch语句将使用严格的比较,例如0 !== false,但是我自己找不到任何东西,而且我不确定这是否可以在不同的JavaScript引擎中很好地工作。有人知道switch语句所做的比较是否一定很严格吗?


阅读 301

收藏
2020-05-01

共1个答案

一尘不染

看一下ECMA 262第12.11节,第二种算法4.c。

C。 如果输入等于===运算符定义的ClauseSelector,则…

2020-05-01