【发布时间】:2019-08-15 09:35:29
【问题描述】:
1.{}+[] 给0
2.[]+{} 给出[object object] 我知道 1 和 2 是怎么来的,但是
3.{}+[]+{} 给[object object][object object]
不应该是0[object object]?
【问题讨论】:
-
代码在哪里执行?
-
代码在 Chrome REPL 中执行。
-
@mplungjan:我认为这些都是错误的。 stackoverflow.com/q/36438034/218196 是正确的副本。
-
Chrome 使用简单的启发式算法,并将以
{开头并以}结尾的行作为表达式求值。因此{}+[]+{}中的{}都被评估为对象一个对象,而{}+[]中的{}是一个块。 -
绝对清楚:您将在其他环境(例如 Firefox)中获得
0[object object]。只是 Chrome 控制台将{}+[]+{}解释为就像您写({}+[]+{})一样。
标签: javascript arrays object