为什么 '1' == true 返回 true,而 '2' == true 在 Javascript

我对 Javascript 还很陌生,我想知道为什么 '1' == true 返回 true 但 '2' == true 返回 false。来自 Java 背景,Javascript 中的类型强制很难掌握


慕哥6287543
浏览 557回答 2
2回答

肥皂起泡泡

我的回答是基于这张表。在您的示例中,操作数 A 是字符串,操作数 B 是布尔值。然后它调用ToNumber它们并比较它们的严格 ( ===) 相等性。ToNumber('2') === 2,但是ToNumber(true) === 1,所以两者不相等。对实现的更深入解释是here。

炎炎设计

基本上它归结为 Javascript 中的真值和假值。因为您的比较是用 == 完成的,所以这基本上意味着只是值比较。在 Javascript 中,true 的值等于 1,就像 false 的值等于 0 一样。此外,鉴于您使用 == 而不是 ===,它与 1 == '1' 相同,但 1 !== '1'。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript