ps:記錄本身不是特別清楚的部分code
tip1、若是兩個操做數都是字符串,就拼接;對象
tip2、若是有一個是字符串,則另一個操做數轉換成字符串,而後在拼接ip
tip3、若是一個操做數是對象、數值或者boolean,則調用它們的toString()方法,在按照上面的規則來;字符串
tip4、若是有一個操做數爲null,而另一個爲數值,則把null轉換成0,在作運算;console
tip5、若是有一個操做數爲undefined,另外一個爲數值,則返回NaN方法
tip6、若是有一個操做數爲null,而另一個爲非數值,則null調用String()方法轉成字符串,在作拼接;co
tip7、若是有一個操做數爲undefined,另外一個爲非數值,則undefined調用String()方法轉成字符串,在作拼接;字符
舉例子:ps
console.log(5+undefined)//NaN console.log("5"+undefined)//'5undefined' console.log(5+null)//5 console.log('5'+null)//'5null'
tip1、若是一個操做數爲字符串、boolean、null、undefined,則先調用Number()將其轉換爲一個數值,在作減法運算,若是轉換的結果是非數值的,則最終結果爲NaN;undefined
tip2、若是一個操做數是對象,則調用其valueOf()方法,若是轉換的結果爲非數值的 ,則最終結果爲NaN; 若是對象沒有valueOf() 方法,則調用toString()方法,轉換成字符串,在將字符串轉成數值,在作運算;
大概舉幾個例子:
console.log(5-undefined)//NaN console.log("5"-undefined)//NaN console.log(5-null)//5 console.log('5'-null)//5