我仍在学习 javaScript 的基础知识,我不明白为什么会发生这种情况。
有类型强制false == "false"
将转换为:
false == false //true
or
"false" == "false" //true
So, why false == "false"
是假的吗?
你误解了类型转换规则 http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. false
在比较之前不会转换为字符串。
如果 Type(x) 为 Boolean,则返回 ToNumber(x) == y 的比较结果。
false
转换为数字,得出:
+0 == "false"
… then …
如果 Type(x) 是 Number 并且 Type(y) 是 String,
返回比较结果 x == ToNumber(y)。
… "false"
转换为数字,得出:
+0 == NaN
……这是错误的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)