一些未在意的隐式转换

有些隐式转换我们没有在意

1 + '1'
1 * '1'

'11'、2

加运算中如果只有一个操作符是字符串,则要将另外一个操作数也转换为字符串。

乘运算中如果有一个操作数不是数值,则会调用 Number() 将另一个操作数转换为数值,如果不能转换为数值,则变为 NaN。

[].valueOf(), [1, 2].valueOf()

[]、[1,2]

valueOf()返回对象本身。

'a' + + 'b'

'aNaN'

后面的 + 作为一元运算符使用,如果操作数是字符串,则会调用 Number() 将其转换为数值,如果不能转换为数值,则变为 NaN。