加法
如果两个操作符都是数值,则正常计算。
如果有一个操作符是字符串,则会先将非字符串的操作符转成字符串,然后拼接起来。
减法
如果两个操作符都是数值,则正常计算。
如果有一个操作符是非数值,则会先转换成数值,再进行计算。
任何涉及NaN的操作都会返回NaN
减法中关于非数值数据转换成数值的规则如下
如果该操作数是字符串、布尔值、null或者undefined,则先在后台调用Number()函数将其转成数值,然后计算,如果转换的结果是NaN,比如Number( 'x' ),则减法的结果就是NaN。
如果该操作数是对象,则调用对象的valueOf()方法以取表示该对象的数值。如果得到的值是NaN,则结果就是NaN。如果对象没有valueOf()方法,则调用其toString()方法并将得到的字符串转成数值。