类型转换
[] == {} //false {} == [] //Uncaught SyntaxError: Unexpected token ==
这是怎么一回事?原因就是JavaScript引擎将第一个{}解释成了一个空的代码块并忽略了它,相当于
== []
为什么第一个{}会被解析成代码块呢?原因是,整个输入被解析成了一个语句,如果一个语句是以左大括号开始的,则这对大括号会被解析成一个代码块.所以,你也可以通过强制把输入解析成一个表达式来修复这样的计算结果
({} == [])//false