运算符
基本运算符
示例代码:
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... | typeof | 从右到左 | |
| void... | void | 从右到左 | |
| delete... | delete | 从右到左 | |
| 14 | ...*... | 乘法 | 从左到右 |
| .../... | 除法 | 从左到右 | |
| ...%... | 取模 | 从左到右 | |
| 13 | ...+... | 加法 | 从左到右 |
| ...-... | 减法 | 从左到右 | |
| 12 | ...<<... | 按位左移 | 从左到右 |
| ...>>... | 按位右移 | 从左到右 | |
| ...>>>... | 无符号右移 | 从左到右 | |
| 11 | ...<... | 小于 | 从左到右 |
| ...<=... | 小于等于 | 从左到右 | |
| ...>... | 大于 | 从左到右 | |
| ...>=... | 大于等于 | 从左到右 | |
| 10 | ...==... | 等号 | 从左到右 |
| ...!=... | 非等号 | 从左到右 | |
| ...===... | 全等号 | 从左到右 | |
| ...!==... | 非全等号 | 从左到右 | |
| 9 | ...&... | 按位与 | 从左到右 |
| 8 | ...^... | 按位异或 | 从左到右 |
| 7 | ...|... | 按位或 | 从左到右 |
| 6 | ...&&... | 逻辑与 | 从左到右 |
| 5 | ...||... | 逻辑或 | 从左到右 |
| 4 | ...?...:... | 条件运算符 | 从右到左 |
| 3 | ...=... | 赋值 | 从右到左 |
| ...+=... | 赋值 | 从右到左 | |
| ...-=... | 赋值 | 从右到左 | |
| ...*=... | 赋值 | 从右到左 | |
| .../=... | 赋值 | 从右到左 | |
| ...%=... | 赋值 | 从右到左 | |
| ...<<=... | 赋值 | 从右到左 | |
| ...>>=... | 赋值 | 从右到左 | |
| ...>>>=... | 赋值 | 从右到左 | |
| ...&=... | 赋值 | 从右到左 | |
| ...^=... | 赋值 | 从右到左 | |
| ...|=... | 赋值 | 从右到左 | |
| 0 | ...,... | 逗号 | 从左到右 |