在 Chrome 控制台中输入:

{}[true]  // [true] (object)
!!{}[true] // false (boolean)

当 {}[true] 是时,为什么 !!{}[true] 不是真的?{}

最佳答案

假设这些陈述独立存在:
{}[true] 被解释为

{} // empty block
[true] // array literal expression

因此,如果您在控制台中键入此内容,则会打印最后一条语句的结果,这是一个包含一个元素的数组,即 bool 值 true

另一方面,!!{}[true] 被解释为访问空对象的属性 'true'。这将返回 undefined 并在转换为 bool 值时转换为 false

关于javascript - js 强制转换和类型强制 - 为什么 !!{}[true] 不是真的?{},我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15925094/

10-12 07:32
查看更多