什么是奇怪的JavaScript表达式的解释?

raj*_*kvk 5 javascript

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

+ ! {} [true]
Run Code Online (Sandbox Code Playgroud)

我怎么也听不懂?

任何大师的解释都表示赞赏.

Rom*_*aun 4

{}是一个空对象。

所以{}[0]{}[true]{}[1]等等..是undefined

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

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

  • 不,“{}”不是未定义的。这是一个空物体。 (2认同)