操作符包括一元操作符、位操作符、布尔操作符、乘性操作符、加性操作符、相等操作符、关系操作符、条件操作符、赋值操作符、逗号操作符。
一元操作符
只能操作一个值的操作符叫做一元操作符。
一元操作符包括递增和递减操作符、一元加和减操作符。
1、递增和递减操作符
递增和递减操作符直接借鉴于C,各有两个版本:前置型和后置型。顾名思义,前置型位于要操作的变量之前,后置型位于要操作的变量之后。
前置型递增例子:
var age = 29;
++age;
这个前置型递增操作符直接把age的值变成了30
执行前置型递减的方法也类似:
var age = 29;
–age;
age的值减少为28;
后置型递增和后置型递减的语法仍然分别是++和–,只是放在变量的后面而不是前面,需要注意的是后置型递增或后置型递减操作符不会改变语句的结果,因为递增或递减是语句的唯一操作,但当语句中还包含其他操作时,结果就会不一样,如下是例子:
var num1 = 2;
var num2 = 20;
var num3 = num1-- + num2; //等于22
var num4 = num1 + num2; //等于21
2、一元加和减操作符
一元加操作符是以一个加号(+)表示
当放在数值前面时,不会改变数值,如:
var num = 25;
num = +num; //输出为25
当放在非数值前面时,会先对这个值进行转换。如
1、布尔值false和true会转换为0和1
2、字符串会按照一组特殊的规则进行解析
3、对象会先调用valueOf()或toString()方法,再转换为值
一元减操作符与一元加操作符遵循一样的规则,不同的是,数值变为负数
位操作符
位操作符此处不做解释,将在下一篇文章中详细介绍
布尔操作符
布尔操作符有三个:非(NOT)、与(AND)、或(OR)
1、逻辑非
逻辑非操作符由一个叹号(!)表示,只有一个操作数,无论是什么值,这个操作符都会返回一个布尔值。
逻辑非操作符会先将他的操作数转换为一个布尔值,然后再对这个数求反,例:
alert(! false); //true
2、逻辑与
逻辑与由两个和号(&&)表示,有两个操作数,例:
var result = true && false;
真值表如下:
第一个操作数 | 第二个操作数 | 结果 |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
逻辑与操作属于短路操作,也就是说,如果第一个操作数能够决定结果,就不会对第二个操作数求值。
3、逻辑或
逻辑或由两个竖线符号(||)表示,有两个操作数,例:
var result = true || false;
真值表如下:
第一个操作数 | 第二个操作数 | 结果 |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
逻辑或和逻辑与一样属于短路操作
乘性操作符
乘性操作符有三个:乘法、除法、求模。如果参与乘性计算的某个操作数不是数值,后台会先使用Number()转型函数将其转换为数值。
1、乘法
乘法由一个星号(*)表示,用于计算两个数值的乘积,如:
var result = 34 * 56;
2、除法
除法操作符由一个斜线符号(/)表示,执行第二个操作数除第一个操作数的计算,如:
var result = 66 / 11;
3、求模
求模(余数)操作符由一个百分号(%)表示,如:
var result = 26 % 5; // 等于 1
加性操作符
1、加法
加法操作符(+)的用法如下所示:
var result = 1 + 2;
2、减法
减法操作符(-)的用法如下所示
var result = 2 - 1;
相等操作符
分为两组操作符:
相等和不相等——先转换再比较
全等和不全等——仅比较而不转换
1、相等和不相等
相等操作符由两个等于号(==)表示,如果两个操作数相等,则返回 true
不 相等操作符由叹号后跟等于号(!=)表示,如果两个操作数不相等,则返回 true
2、全等和不全等
全等操作符由 3 个等于号(===)表示,它只在两个操作数未经转换就相等的情况下返回 true
不全等操作符由一个叹号后跟两个等于号(!==)表示,它在两个操作数未经转换就不相等的情况下返回 true
关系操作符
关系操作符有小于(<)、大于(>)、小于等于(<=)和大于等于(>=),用于对两个值进行比
较。如:
var result1 = 5 > 3; //true
var result2 = 5 < 3; //false
条件操作符
最灵活的一种操作符,请看如下例子:
variable = boolean_expression ? true_value : false_value;
这行代码的含义就是基于对 boolean_expression 求值的结果,决定给变量 variable 赋什么值。如果求值结果为 true,则给变量 variable 赋 true_value 值;如果求值结果为 false, 则给变量 variable 赋 false_value 值。
赋值操作符
由等于号(=)表示,用于把右侧的值赋给左侧的变量,如:
var num = 10;
逗号操作符
使用逗号操作符可以在一条语句中执行多个操作
逗号操作符多用于声明多个变量,还可以用于赋值
声明多个变量:var num1=1, num2=2, num3=3;
赋值:var num = (5, 1, 4, 8, 0); // num 的值为 0