操作符
操作符分为算术运算符、位操作符、关系操作符和相等操作符
1、一元操作符
var age = 29; ++age; //前置递加 --age;//前置递减 age++;//后置递加 age--;//后置递减
2、位操作符
(1)按未非~
var num1 = 25; var num2 = ~num1; alert(num2);// -26
位非操作的本质:操作数的负值减1
(2)按位与&
(3)按位或 |
(4)按位异或 ^
(5)左移<<
(6)有符号的右移>>
(7)无符号的右移>>>
3、布尔操作符
(1)逻辑非 !
!x
用于表达 x 表达式的运行结果转换成布尔值(Boolean)之后取反的结果。!!x
则表示取 x 表达式的运行结果的布尔值。
(2)逻辑与 &
x && y
如果 x 表达式的运行交过转换成 Boolean 值为 false 则不运行表达式 y 而直接返回 x 表达式的运行结果。相反,如果 x 表达式的运行交过转换成 Boolean 值为 true 则运行表达式 y 并返回 y 表达式的运行结果。
var a = 0 && (function(){return 1 + 1;})(); // 0 var b = 1 && (function(){return 1 + 1;})(); // 2
(3)逻辑或 ||
x || y
如果 x 表达式的运行结果转换为 Boolean 值为 true,则不运行 表达式 y 而直接返回表达式 x 的运算结果。(与 &&
方式相反)
var a = 0 || (function(){return 1 + 1;})(); // 2 var b = 1 || (function(){return 1 + 1;})(); // 1
4、条件操作符
var max = (num > num2) ? num1 : num2;
5、逗号操作符
var num1 = 1,num2 = 2,num3 = 3;
逗号操作符可以用于声明多个变量,但除此之外,逗号还可以赋值,用于赋值时逗号操作符总会返回表达式中的最后一项。
6、元算符优先级
+
-
*
/
高于&&
*
/
高于+
-
&&
高于?:
()
内优先级高于之外