javascript一元加号,放在方括号之间

时间:2019-03-25 07:14:50

标签: javascript arrays object

1。{}+[]给出0

2。[]+{}给出了[object object],我知道1和2是如何出现的,但是

3。{}+[]+{}给出[object object][object object]

怎么不应该0[object object]

1 个答案:

答案 0 :(得分:0)

使用console.log时,它会执行toString-使用{} + []时会给出[object Object]

console.log({} + []);

(注意:只需将{} + []放入开发人员工具控制台即可得到0,因为未调用toString。)

这就是为什么会产生[object Object][object Object]的原因:

console.log({} + [] + {});

由于要将对象(由{} + []形成)添加到另一个对象,并且由于使用的是+串联运算符,因此强制toString-因此,您重新添加[objectObject][object Object],得到[object Object][object Object]

注意:以上所有内容均在Chrome上。在Firefox和其他可能的版本中,它们的工作方式不同,这就是为什么问题中的某些内容有所不同。