为什么{}+[]不同于({}+[])

Why is {}+[] different from ({}+[])?

本文关键字:不同于 为什么      更新时间:2024-01-12

我最近发现以下情况时感到震惊:

> {}+[]
0
> ({}+[])
"[object Object]"
> {}+[]+1
1
> ({}+[])+1
'[object Object]1'
> {}+[] == ({}+[])
false

为什么用括号括起来的东西会改变它的类型?

{} + []是一个空块,后面跟着一个带有一元+运算符的数组,本质上是,它是+[],它是0,

({} + [])是一个文本对象加上一个文本数组,两者都被转换为字符串,对象的字符串值是"[object Object]"加上空数组的字符串值,即"",因此您看到的结果。