这个奇怪的javascript表达式的解释是什么?

What would be the explanation for the strange javascript expression?

本文关键字:解释 是什么 表达式 javascript      更新时间:2023-09-26

在JavaScript中,下面这行代码给出的答案是1

+ ! {} [true]

我不明白怎么回事?

{}为空对象。

所以{}[0]{}[true]{}[1]等。are 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