在 JavaScript 中,以下代码行给出的答案为 1
+ ! {} [true]
我不明白怎么办?
任何大师的解释都值得赞赏。
{}
是一个空对象。
所以
{}[0]
或{}[true]
或{}[1]
等..是undefined
添加
!
将 {}[0]
转换为 boolean
,返回相反的值。 (undefined
变为 false
,因此返回 true
)。
添加
+
将其转换为 int
,因此 true
变为 1
。
我尝试通过代码来解释它。
var emptyObject = {};
valueOfUndefinedKey = emptyObject['key_not_exists'],
itsNot = !valueOfUndefinedKey ,
finalConvertedNumber = +itsNot ;
console.log(
emptyObject,
valueOfUndefinedKey,
itsNot,
finalConvertedNumber
)
打印
Object {}
undefined
true
1