当我在严格模式下使用`=`运算符时,javascript中会出现比较歧义,有人能告诉我';这是为什么?
同样的手术会产生不同的结果,有人能告诉我为什么吗当我在严格模式下使用`=`运算符时,javascript中会出现比较歧义,有人能告诉我';这是为什么?,javascript,comparison,strict,Javascript,Comparison,Strict,同样的手术会产生不同的结果,有人能告诉我为什么吗 "use strict" console.log(+0 === -0) // true +0 === -0 // false 执行结果: 这里没什么大不了的,您的代码被解释如下,因为没有分号 "use strict" +0 === -0 使用分号 "use strict"; +0 === -0 严格模式与比较无关。请看一下算法+0将始终等于-0 当涉及到您的案例时,您的代码将被解释为 "use strict" co
"use strict"
console.log(+0 === -0) // true
+0 === -0 // false
执行结果:
这里没什么大不了的,您的代码被解释如下,因为没有分号
"use strict" +0 === -0
使用分号
"use strict";
+0 === -0
严格模式与比较无关。请看一下算法<代码>+0将始终等于-0
当涉及到您的案例时,您的代码将被解释为
"use strict" console.log(+0 === -0) +0 === -0
那么这里发生了什么
- 首先计算
,然后在控制台中打印console.log()
true
- 现在将对该部分
进行评估未定义+0===-0
是undefined+0
,因此NaN
将是NaN===-0
false
console.log(…)+0===…
,但是是的,同样的问题…