- 1 + "1"
加性操作符:如果只有一个操作数是字符串,则将另一个操作数转换为字符串,然后再将两个字符串拼接起来
所以值为:“11”
- 2 * "2"
乘性操作符:如果有一个操作数不是数值,则在后台调用 Number()将其转换为数值
- [1, 2] + [2, 1]
Javascript中所有对象基本都是先调用valueOf
方法,如果不是数值,再调用toString
方法。
所以两个数组对象的toString方法相加,值为:"1,22,1"
- "a" + + "b"
后边的“+”将作为一元操作符,如果操作数是字符串,将调用Number方法将该操作数转为数值,如果操作数无法转为数值,则为NaN。
所以值为:"aNaN"
console.log({} + [])
首先给{}调用valueOf()方法,不是数字,然后调用toString()方法,结果为[object Object]
其次给[]调用valueOf()方法,不是数字,然后调用toString()方法,结果为空
因此结果为:[object Object] 类型为:string
console.log({} + {})
结果为:[object Object][object Object] 类型为:string
console.log([] + [])
结果为空 类型为:string