我有一个变量,它可以是 bool 值 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_var
是 false
,它可能会执行自 0 == false
以来的第一个 case。
我只是想知道 JavaScript 中是否有任何官方说明 switch 语句将使用严格比较使得 0 !== false
,但我自己找不到任何东西,而且我我不确定这是否适用于不同的 JavaScript 引擎。有谁知道 switch 语句所做的比较是否保证是严格的?
最佳答案
看看ECMA 262, section 12.11 , 第二种算法, 4.c.
c. If input is equal to clauseSelector as defined by the === operator, then...
关于javascript - 在 JavaScript switch 语句中假设严格比较是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6989902/