1.取余运算符 % :-5%2=-1, 5%-2=1;符号取决于前一位数的正负。
2.指数运算符** : 2**3**2=512
;指数运算符是右结合,2**3**2===2**9
3.加法运算符+ : 有相加和连接两种重载运算,1+1=2;1+ ‘1’=‘11’;对于对象相加,先执行对象的valueof()方法,再执行tostring()方法直到将object转为基础的三种类型。
var obj = {
valueOf: function () {
return 1;
}
};
obj + 2 // 3
var obj = {
toString: function () {
return 'hello';
}
};
obj + 2 // "hello2"
但是,这里面有一个例外,Date对象是先执行tostring()方法,再执行valueof()方法。
var obj = new Date();
obj.valueOf = function () { return 1 };
obj.toString = function () { return 'hello' };
obj + 2 // "hello2"