为什么{}+[]不同于({}+[])
Why is {}+[] different from ({}+[])?
我最近发现以下情况时感到震惊:
> {}+[]
0
> ({}+[])
"[object Object]"
> {}+[]+1
1
> ({}+[])+1
'[object Object]1'
> {}+[] == ({}+[])
false
为什么用括号括起来的东西会改变它的类型?
{} + []
是一个空块,后面跟着一个带有一元+
运算符的数组,本质上是,它是+[]
,它是0,
({} + [])
是一个文本对象加上一个文本数组,两者都被转换为字符串,对象的字符串值是"[object Object]"
加上空数组的字符串值,即""
,因此您看到的结果。
相关文章:
- 可以'我不明白为什么;t将行和单元格添加到表中
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- Don'我不明白为什么我的setInterval+jQuery;不起作用
- 这个旋钮没有更新;我不知道为什么
- 我不知道为什么我的代码是错误的?又有什么错
- I'我不知道为什么我的代码没有'不起作用
- sqlite查询返回错误-can'我不知道为什么
- JQuery `length`属性工作不正常.为什么?
- 我可以'我不明白为什么我能;不要在JavaScript中更改蜡笔的颜色
- 我没有'我不知道为什么我的jqGrid子网格没有'不要给我看数据
- 为什么{}+[]不同于({}+[])
- 为什么undefined的行为不同于其他变量
- 为什么Date(N).toString()不同于d= new Date(N);d.toString()
- 为什么jQuery的开/关方法的行为不同于外部脚本
- 为什么我的JSON格式不同于HighCharts的例子
- 为什么我的函数返回不同于我的console.log()在Chrome浏览器
- React为虚拟DOM输入触发的onChange事件不同于常规DOM输入.这是为什么?
- 为什么在textarea的值属性不同于JS的值
- 为什么返回对象是由文档.getElementById不同于$(".class").last().ge
- 为什么mousewheel事件的target属性不同于其他(click, mousedown, touchstart)事