5

在 JavaScript 中,以下代码行给出的答案为 1

+ ! {} [true]

我怎么看不懂?

任何大师的解释表示赞赏。

4

2 回答 2

4

{}是一个空对象。

so {}[0]or {}[true]or {}[1]etc.. 是undefined

添加!强制转换{}[0]为 a boolean,返回相反的结果。(undefined成为false,因此返回true)。

添加+将其转换为int,因此true变为1

于 2013-05-10T09:56:33.920 回答
2

我试图通过代码来解释它。

var emptyObject = {};
    valueOfUndefinedKey = emptyObject['key_not_exists'],
    itsNot = !valueOfUndefinedKey ,
    finalConvertedNumber = +itsNot ;

console.log(
    emptyObject,
    valueOfUndefinedKey,
    itsNot,
    finalConvertedNumber
) 

哪个打印

Object {}

undefined

true

1
于 2013-05-10T10:08:22.997 回答