• {}+[] // 0
  • []+{} // [object Object]

代码1的为0的原因是,解释器把开头检测到的{}当做了代码块出来,然后实际运行的是+[]。这种运行结果只在特定的情况下产生,运算时添加一个括号就是代码2的结果
({}+[]) // [object Object]

({}+[]).length // 15