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