为什么 !0 在 JavaScript 中返回布尔数据类型? [已关闭]

问题描述 投票:0回答:1

表达式

true === 1
在 javascript 中的计算结果为 false,因为
true
1
的数据类型不同。前者是布尔类型,后者是数字。但是,当您检查
true
!0
之间是否严格相等时,相等评估将返回 true。这是因为
!0
返回布尔值而不是数字。

为什么 JavaScript 要将“0”从数字类型转换为布尔类型?

javascript typescript boolean
1个回答
-3
投票

true === !0 应该为 true,因为首先 !0 被评估为 true,然后严格相等运算符返回 true。它可能会返回 false,只是因为某些浏览器存在导致错误评估的错误。您可以通过用括号将 !0 括起来来解决此问题:

true === (!0)

我正在使用 Edge,当我在不带括号的控制台中尝试此操作时,它返回 true。

© www.soinside.com 2019 - 2024. All rights reserved.