在JavaScript switch语句中假定严格比较是否安全?
Is it safe to assume strict comparison in a JavaScript switch statement?
我有一个变量,可以是布尔false
,也可以是整数(包括0)。我想把它放在一个开关语句中,如:
switch(my_var){
case 0:
// Do something
break;
case 1:
// Do something else
break;
case false:
// Some other code
}
在我的测试在谷歌浏览器,它似乎工作完美,但我有点紧张使用它,因为我担心在一些浏览器中,如果my_var
是false
,它可能会执行自0 == false
的第一种情况。
我只是想知道是否有任何官方的JavaScript,说开关语句将使用严格的比较,如0 !== false
,但我自己找不到任何东西,我不确定这是否会在不同的JavaScript引擎工作得很好。有人知道switch语句所做的比较是否保证严格吗?
查看ECMA 262,第12.11节,第二种算法,4.c.
c。如果input等于===操作符定义的clauseSelector,则…
http://qfox。/注释/110回答你的问题。(这家伙知道很多关于JavaScript的细节)
Javascript中的开关使用严格的类型检查(===)。所以你永远不会不得不担心强制,这阻止了一些WTFJS:)。如果在另一方面,你指望着胁迫,运气不好,因为你不能力。
是的,switch
"[使用]严格比较,===
".
来源:switch - JavaScript | MDN
相关文章:
- ==是否创建垃圾?(将字符串与数字进行比较时)
- 是否有必要使用 === 来比较 Javascript 中的字符串,或者 == 就足够了
- 此比较行为是否定义良好
- 比较对象类型时是否需要第三个=
- 我想比较一个值是否是“不可用”的javascript
- 在运行之前确定数据是否是新的(将数组与 JSON 进行比较)
- 与“未定义”进行比较是否仍会进行全局范围查找
- 角度JS比较两个日期是否相等
- 比较JavaScript中的两个mill i秒,以确定日期是否相同
- 动态创建一个数组,然后遍历另一个数组以比较数据是否存在
- 比较字符串是否以符号 @ jquery 或 javascript 开头
- 一个函数,用于比较数组中是否存在重复的数字
- 比较 IMG SRC + A 包装 URL 字符串,看看它们是否“相似”
- dijit.byId('').value获得的值是否可以与String进行比较
- 比较两个“;字符串”;以检查它们是否相等
- 是否有任何javascript库可以使用HTML5画布(或任何其他方式)对图像进行像素比较
- 在运行时检查是否有正确的日期类型,以便进行比较
- 是否可以将值与构造函数的参数进行比较
- 是否有一个实用程序来深度比较对象在谷歌闭包库
- 在JavaScript switch语句中假定严格比较是否安全?