相关疑难解决方法(0)

为什么{} + {}在Chrome控制台中不再是NaN?

我今天注意到NaN当你输入{}+{}控制台时,Chrome 49不再输出.而是输出字符串[object Object][object Object].

为什么是这样?语言有变化吗?

javascript google-chrome

143
推荐指数
2
解决办法
1万
查看次数

什么时候JS将{}解释为空块而不是空对象?

我正在阅读这个问题的答案(关于"wat"视频),它说:

  1. {}+[]
    这被解释为一个空的代码块,一元加和空数组.第一部分什么都不做,数组转换为逗号分隔的字符串(空数组为空数组),然后转换为数字(空字符串转换为0),因此为0.

我目前正在从"权威指南"学习JS,所以我试着真正理解这样的事情.

我的问题是,JS何时决定将其解释{}为空代码块,而不是空对象?

另外,我想了解Node.js和Firebug之间的一些不一致之处.

萤火虫:

用于<code> {} [] </ code>和<code>({} [])</ code>的Firebug控制台输出

Node.js的:

<code> {} [] </ code>和<code>({} [])</ code>的Node.js输出

javascript firebug node.js

17
推荐指数
1
解决办法
1353
查看次数

为什么{}!=({})在JavaScript中?

众所周知,{}定义像对象一样的对象的方法较短[].

但现在我想知道为什么:

{} != ({})
Run Code Online (Sandbox Code Playgroud)
  • {} 评估为undefined
  • ({}) 评估"正确"对象

为什么JavaScript表现得像这样?

例如1等于(1),为什么{}不等于({})

javascript

15
推荐指数
2
解决办法
972
查看次数

为什么0 === {}没关系,但{} === 0会抛出错误?

我将以下内容放入浏览器控制台:

0 === {} // false
{} === 0 // SyntaxError: expected expression, got '==='
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

javascript

8
推荐指数
1
解决办法
146
查看次数

标签 统计

javascript ×4

firebug ×1

google-chrome ×1

node.js ×1