为什么严格相等 true === !0 在 javascript 中计算结果为 true?

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

表达式

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

!0
的数据类型返回为布尔值。

为什么javascript要进行这种数据类型转换?

javascript typescript boolean mocha.js
1个回答
0
投票

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

true === (!0)
© www.soinside.com 2019 - 2024. All rights reserved.