在 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/