這裡記錄一些從阮一峰的JavaScript參考教程和 JavaScript: The Good Part 中得到的知識,做記憶補強和方便回憶之用。
+
規則全文照抄
如果运算子是对象,先自动转成原始类型的值(即先执行该对象的valueOf方法,如果结果还不是原始类型的值,再执行toString方法;如果对象是Date实例,则先执行toString方法)。
两个运算子都是原始类型的值以后,只要有一个运算子是字符串,则两个运算子都转为字符串,执行字符串连接运算。
否则,两个运算子都转为数值,执行加法运算。
%
注意,運算結果的正負號取決於第一個運算子的正負號。
數值運算符
將所有值轉為Number(與Number()作用相同),返回新的值,不改變原值。
+true // 1
+[] // 0
+{} // NaN
-true // -1
-[] // -0
===
原始類型直接比較值,下列兩個要特別注意
NaN === NaN // false
+0 === -0 // true
同類型的複合類型值,會比較是否指向同一對象,注意,不是比較內部的值
var v1 = {};
var v2 = v1;
v1 === v2 // true
位元運算
少用故跳過XD