我对 Javascript 还很陌生,我想知道为什么 '1' == true 返回 true 但 '2' == true 返回 false。来自 Java 背景,Javascript 中的类型强制很难掌握
2 回答
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
我的回答是基于这张表。
在您的示例中,操作数 A 是字符串,操作数 B 是布尔值。然后它调用ToNumber
它们并比较它们的严格 ( ===
) 相等性。
ToNumber('2') === 2
,但是ToNumber(true) === 1
,所以两者不相等。
对实现的更深入解释是here。
炎炎设计
TA贡献1808条经验 获得超4个赞
基本上它归结为 Javascript 中的真值和假值。
因为您的比较是用 == 完成的,所以这基本上意味着只是值比较。
在 Javascript 中,true 的值等于 1,就像 false 的值等于 0 一样。此外,鉴于您使用 == 而不是 ===,它与 1 == '1' 相同,但 1 !== '1'。
添加回答
举报
0/150
提交
取消