我今天注意到NaN当你输入{}+{}控制台时,Chrome 49不再输出.而是输出字符串[object Object][object Object].
为什么是这样?语言有变化吗?
我正在阅读这个问题的答案(关于"wat"视频),它说:
{}+[]我目前正在从"权威指南"学习JS,所以我试着真正理解这样的事情.
我的问题是,JS何时决定将其解释{}为空代码块,而不是空对象?
另外,我想了解Node.js和Firebug之间的一些不一致之处.
萤火虫:
![用于<code> {} [] </ code>和<code>({} [])</ code>的Firebug控制台输出](https://i.stack.imgur.com/4JnaG.png)
Node.js的:
![<code> {} [] </ code>和<code>({} [])</ code>的Node.js输出](https://i.stack.imgur.com/KqbIH.png)
众所周知,{}定义像对象一样的对象的方法较短[].
但现在我想知道为什么:
{} != ({})
Run Code Online (Sandbox Code Playgroud)
{} 评估为undefined({}) 评估"正确"对象为什么JavaScript表现得像这样?
例如1等于(1),为什么{}不等于({})?
我将以下内容放入浏览器控制台:
0 === {} // false
{} === 0 // SyntaxError: expected expression, got '==='
Run Code Online (Sandbox Code Playgroud)
为什么是这样?