1、递增(递减)操作符
在JavaScript
中递增(递减)操作符和C语言
中的用法是一样的,分为两种:前置型
(先加后操作)、后置型
(先操作后加)。
以递增操作符为例:
前置型:
var num1 = 1;
var num2 = 15;
console.log(++num1 + num2); // 17
console.log(num1); // 2
后置型:
var num1 = 1;
var num2 = 15;
console.log(num1++ + num2); // 16
console.log(num1); // 2
递减操作符同理。
2、加法操作符
- 如果
两个
操作数都是
字符串,则将两个操作数拼接起来; - 如果
有一个
操作数是
字符串,则将另一个操作数转换为字符串,然后将两个字符串拼接起来。 - 如果有一个操作数是
对象、数值或布尔值
,则调用它们的toString()
方法取得相应的字符串值,然后再应用前面关于字符串的规则。对于undefined和null,则分别调用String()函数并取得字符串”undefined”和”null”。
console.log("hello " + "world"); // "hello world"
console.log(5 + "5"); // "55"
注:两个操作符都是数值时,执行常规算术操作
3、减法操作符
- 如果有一个操作数是
NaN
,则结果是NaN; - 如果有一个操作数是
字符串、布尔值、null或undefined
,则先在后台调用Number()
函数将其转换为数值,然后再根据前面的规则执行减法计算。如果转换的结果是NaN,则减法的结果就是NaN; - 如果有一个操作数是
对象
,则调用对象的valueOf()
方法以取得表示该对象的数值。如果得到的值是NaN,则减法的结果就是NaN。如果对象没有valueOf()方法,则调用其toString()
方法并将得到的字符串转换为数值。
console.log(NaN - 1); // NaN
console.log(5 - true); // 4
console.log(5 - ""); // 5
注:两个操作符都是数值时,执行常规算术操作
4、关系操作符
- 如果
两个
操作数都是字符串
,则比较第一位字符的ascii码,若相同,继续比较第二位,直到不相同为止; - 如果有一个操作数是
数值
,则将另一个操作数转换为数值进行比较; - 如果有一个操作数是
对象
,同减法操作符;
console.log( "23" > "3" ); // false,"2"的ascii码为50,"3"为51
console.log( "23" > 3 ); // true,23 > 3
console.log( "a" > 3 ); // false,"a"转化成了NaN,NaN与任何操作数比较都为false
console.log( "a" < 3 ); // false
console.log( "a" > "3"); // true,"a"的ascii码为97