一、位运算符
PS:在一般的应用中,我们基本上用不到位运算符。虽然,它比较基于底层,性能和速度会非常好,而就是因为比较底层,使用的难度也很大。
位运算符有七种,分别是:位非NOT(~)、位与AND(&)、位或OR(|)、位异或XOR(^)、左移(<<)、有符号右移(>>)、无符号右移(>>>)。
var box = ~25; //-26
var box = 25 & 3; //1
var box = 25 | 3; //27
var box = 25 << 3; //200
var box = 25 >> 2; //6
var box = 25 >>> 2; //6
更多的详细:ECMAScript位运算符:http://www.w3school.com.cn/js/pro_js_operators_bitwise.asp
二、赋值运算符
赋值运算符用等于号(=)表示,就是把右边的值赋给左边的变量。
var box = 100; //把100赋值给box变量
复合赋值运算符通过x=的形式表示,x表示算术运算符及位运算符。
var box = 100;
box = box +100; //200,自己本身再加100
这种情况可以改写为:
var box = 100;
box += 100; //200,+=代替box+100
除了这种+=加/赋运算符,还有其他的几种如下:
1.乘/赋(*=)
2.除/赋(/=)
3.模/赋(%=)
4.加/赋(+=)
5.减/赋(-=)
6.左移/赋(<<=)
7.有符号右移/赋(>>=)
8.无符号有移/赋(>>>=)
三、其他运算符
1.字符串运算符
字符串运算符只有一个,即:"+"。它的作用是将两个字符串相加。
规则:至少一个操作数是字符串即可。
var box = '100' + '100'; //100100
var box = '100' + 100; //100100
var box = 100 + 100; //200
2.逗号运算符
逗号运算符可以在一条语句中执行多个操作。
var box = 100, age = 20, height = 178; //多个变量声明
var box = (1,2,3,4,5); //5,变量声明,将最后一个值赋给变量,不常用
var box = [1,2,3,4,5]; //[1,2,3,4,5],数组的字面量声明
var box = { //[object Object],对象的字面量声明
1 : 2,
3 : 4,
5 : 6
};
3.三元条件运算符
三元条件运算符其实就是后面将要学到的if语句的简写形式。
var box = 5 > 4 ? '对' : '错'; //对,5>4返回true则把'对'赋值给box,反之。
相当于:
var box = ''; //初始化变量
if (5 > 4) { //判断表达式返回值
box = '对'; //赋值
} else {
box = '错'; //赋值
}
四、运算符优先级
在一般的运算中,我们不必考虑到运算符的优先级,因为我们可以通过圆括号来解决这种问题。比如:
var box = 5 - 4 * 8; //-27
var box = (5 - 4) * 8; //8
但如果没有使用圆括号强制优先级,我们必须遵循以下顺序:
运算符 | 描述 |
.[]() | 对象成员存取、数组下标、函数调用等 |
++ -- ~ !delete new typeof void | 一元运算符 |
* / % | 乘法、除尘、去模 |
+ - + | 加法、减法、字符串连接 |
<< >> >>> | 移位 |
< <=> >=instanceof | 关系比较、检测类实例 |
== != === !== | 恒等(全等) |
& | 位与 |
^ | 位异或 |
| | 位或 |
&& | 逻辑与 |
|| | 逻辑或 |
?; | 三元条件 |
= x= | 赋值、运算赋值 |
评论