运算符
目录
一、运算符
1、基本运算符
+、-、*、/、%
注意:加法运算(+
)也可以用作字符串的拼接。
2、一元运算符
- 自增运算(++)
- 自减运算(--)
- 正值运算(+)
- 负值运算(-)
- 否运算(~)
- 取反运算(!)
- delete 运算(delete)
- void 运算(void)
- typeof 运算(typeof)
var a = 10, b = 20;
// 自增运算
console.log(10 === a++);// true
console.log(12 === ++a);// true
// 自减运算
console.log(12 === a--);// true
console.log(10 === --a);// true
// 正值运算
console.log(10 === +a);// true
// 负值运算
console.log(0-10 === -a);// true
// 否运算
console.log(-11 === ~a);// true
// 取反运算
console.log(false === !a);// true
// delete 运算
console.log(true === delete a.fake);// true
// void 运算
console.log(undefined === void a);// true
// typeof 运算
console.log("number" === typeof a);// true
3、位运算符
<<、>>、>>>、&、^、|
var a = 10, b = 20;
// 左移运算
console.log(80 === (a << 3));// true
// 无符号右移运算
console.log(2 === (a >> 2));// true
// 带符号右移运算
console.log(2 === (a >>> 2));// true
// 与运算
console.log(2 === (a & 3));// true
// 异或运算
console.log(9 === (a ^ 3));// true
// 或运算
console.log(11 === (a | 3));// true
4、比较运算符
<、>、<=、>=
5、等值运算符
==、!=、===、!==
var a = 10, b = 20;
// 等号
console.log(false === (a == b));// true
// 非等号
console.log(true === (a != b));// false
// 全等号
console.log(false === (a === b));// true
// 非全等号
console.log(true === (a !== b));// false
6、赋值运算符
var a = 10;
a = 10; a *= 10;
console.log(100 === a);// true
a = 10; a /= 5;
console.log(2 === a);// true
a = 10; a %= 7;
console.log(3 === a);// true
a = 10; a += 5;
console.log(15 === a);// true
a = 10; a -= 11;
console.log(-1 === a);// true
a = 10; a <<= 10;
console.log(10240 === a);// true
a = 10; a >>= 2;
console.log(2 === a);// true
a = 10; a >>>= 2;
console.log(2 === a);// true
a = 10; a &= 3;
console.log(2 === a);// true
a = 10; a ^= 3;
console.log(9 === a);// true
a = 10; a |= 3;
console.log(11 === a);// true
7、二元逻辑运算符
&&、||
var a = 10, b = 20;
// 逻辑与
console.log(20 === (a && b));// true
// 逻辑或
console.log(10 === (a || b));// true
8、条件运算符(三目运算符)
var a = 10, b = 20;
//条件运算符
console.log(20 === (a >= 10 ? a + 10 : b + 10));// true
9、逗号运算符
var a = 10, b = 20;
//逗号运算符
console.log(20 === (a, b));// true
二、运算符优先级
优先级 | 运算符 | 说明 | 结合性 |
---|---|---|---|
20 | ( ... ) | 括号 | n/a |
19 | ... . ... | 成员访问 | 从左到右 |
... [ ... ] | 成员访问 | 从左到右 | |
... ( ... ) | 函数调用 | 从左到右 | |
17 | ... ++ | 后置递增 | n/a |
... -- | 后置递减 | n/a | |
16 | ! ... | 逻辑非 | 从右到左 |
~ ... | 按位非 | 从右到左 | |
+ ... | 一元加法 | 从右到左 | |
- ... | 一元减法 | 从右到左 | |
++ ... | 前置递增 | 从右到左 | |
-- ... | 前置递减 | 从右到左 | |
typeof ... | typeof | 从右到左 | |
void ... | void | 从右到左 | |
delete ... | delete | 从右到左 | |
14 | ... * ... | 乘法 | 从左到右 |
... / ... | 除法 | 从左到右 | |
... % ... | 取模 | 从左到右 | |
13 | ... + ... | 加法 | 从左到右 |
... - ... | 减法 | 从左到右 | |
12 | ... << ... | 按位左移 | 从左到右 |
... >> ... | 按位右移 | 从左到右 | |
... >>> ... | 无符号右移 | 从左到右 | |
11 | ... < ... | 小于 | 从左到右 |
... <= ... | 小于等于 | 从左到右 | |
... > ... | 大于 | 从左到右 | |
... >= ... | 大于等于 | 从左到右 | |
10 | ... == ... | 等号 | 从左到右 |
... != ... | 非等号 | 从左到右 | |
... === ... | 全等号 | 从左到右 | |
... !== ... | 非全等号 | 从左到右 | |
9 | ... & ... | 按位与 | 从左到右 |
8 | ... ^ ... | 按位异或 | 从左到右 |
7 | ... | ... | 按位或 | 从左到右 |
6 | ... && ... | 逻辑与 | 从左到右 |
5 | ... || ... | 逻辑或 | 从左到右 |
4 | ... ? ... : ... | 条件运算符 | 从右到左 |
3 | ... = ... | 赋值 | 从右到左 |
... += ... | 赋值 | 从右到左 | |
... -= ... | 赋值 | 从右到左 | |
... *= ... | 赋值 | 从右到左 | |
... /= ... | 赋值 | 从右到左 | |
... %= ... | 赋值 | 从右到左 | |
... <<= ... | 赋值 | 从右到左 | |
... >>= ... | 赋值 | 从右到左 | |
... >>>= ... | 赋值 | 从右到左 | |
... &= ... | 赋值 | 从右到左 | |
... ^= ... | 赋值 | 从右到左 | |
... |= ... | 赋值 | 从右到左 | |
0 | ... , ... | 逗号 | 从左到右 |