表达式
true === 1
在 JavaScript 中计算结果为 false,因为数据数据类型不同。前者是布尔类型,后者是数字。但是,当您检查 true
和 !0
之间是否严格相等时,它会返回 false。
!0
的数据类型返回为布尔值。
为什么javascript要进行这种数据类型转换?
true === !0 应该为 true,因为首先 !0 被评估为 true,然后严格相等运算符返回 true。它可能会返回 false,只是因为某些浏览器存在导致错误评估的错误。您可以通过用括号将 != 括起来来解决此问题:
true === (!0)