JavaScript 算术运算符
JavaScript 算术运算符用于对数字执行算术运算,包括加法、减法、乘法、除法、乘方、余数、自增、自减等。
JavaScript 算术运算符用于对数字执行算术运算,包括加法、减法、乘法、除法、乘方、余数、自增、自减等。
运算符 | 说明 |
---|---|
+ |
加法 |
- |
减法 |
* |
乘法 |
** |
乘方/求幂 (ES2016) |
/ |
除法 |
% |
求余数 |
++ |
自增 |
-- |
自减 |
算术运算
典型的算术运算对两个数字进行运算。
这两个数字可以是数字:
let x = 100 + 50;
console.log("x =", x); // 输出: x = 150
或变量:
let a = 100;
let b = 50;
let x = a + b;
console.log("x =", x); // 输出: x = 150
或表达式:
let a = 1;
let x = (100 + 50) * a;
console.log("x =", x); // 输出: x = 150
运算符和操作数
运算表达式中除运算符之外的数字或者变量称为操作数。
100 + 50
--- - ---
↑ ↑ ↑
操作数 运算符 操作数
加法 +
let x = 5;
let y = 2;
let z = x + y;
console.log("z =", z); // 输出: z = 7
减法 -
let x = 5;
let y = 2;
let z = x - y;
console.log("z =", z); // 输出: z = 3
乘法 *
let x = 5;
let y = 2;
let z = x * y;
console.log("z =", z); // 输出: z = 10
除法 /
let x = 10;
let y = 2;
let z = x / y;
console.log("z =", z); // 输出: z = 5
求余 %
let x = 5;
let y = 2;
let z = x % y;
console.log("z =", z); // 输出: z = 1
自增
自增运算符(++
)用于对变量值进行加 1 运算,再把运算结果赋值给变量。
let x = 5;
x++;
console.log("x =", x); // 输出: z = 6
自减
自减运算符(--
)用于对变量值进行减 1 运算,再把运算结果赋值给变量。
let x = 5;
x--;
console.log("x =", x); // 输出: z = 4
求幂
求幂运算符(**
)既是求乘方。
a ** b
= ab ,即 a 的 b 次方
let x = 5;
let z = x ** 2;
console.log("z =", z); // 输出: z = 25
x ** y
产生与 相同的结果 Math.pow(x,y)
:
let x = 5;
let z = Math.pow(x, 2);
console.log("z =", z); // 输出: z = 25
运算符优先级
运算符优先级描述了在算术表达式中执行运算的顺序。
let x = 100 + 50 * 3;
上面例子先加法还是先乘法?与传统的数学一样,先计算乘法。
乘法 (*
) 和除法 (/
) 的优先级高于加法 (+
) 和减法 (-
)。
括号的优先级更高,使用括号时,首先计算括号内的运算。
let x = (100 + 50) * 3;
JavaScript 运算符优先级值
下表列出了 JavaScript 运算符优先级值,值越大优先级越高。
优先级 | 运算符 | 说明 | 示例 |
---|---|---|---|
21 | ( ) |
表达式分组 | (3 + 4) |
20 | . |
对象成员变量 | person.name |
20 | [] |
对象成员变量 | person["name"] |
20 | () |
函数调用 | myFunction() |
20 | new |
创建对象 | new Date() |
18 | ++ |
后置自增 | i++ |
18 | -- |
后置自减 | i-- |
17 | ++ |
前置自增 | ++i |
17 | -- |
前置自减 | --i |
17 | ! |
逻辑非 | !(x == y) |
17 | typeof |
Type | typeof x |
16 | ** |
求幂 (ES2016) | 10 ** 2 |
15 | * |
乘法 | 10 * 5 |
15 | / |
除法 | 10 / 5 |
15 | % |
求余 | 10 % 5 |
14 | + |
加法 | 10 + 5 |
14 | - |
减法 | 10 - 5 |
13 | << |
左移 | x << 2 |
13 | >> |
右移 | x >> 2 |
13 | >>> |
无符号右移 | x >>> 2 |
12 | < |
小于 | x < y |
12 | <= |
小于等于 | x <= y |
12 | > |
大于 | x > y |
12 | >= |
大于等于 | x >= y |
12 | in |
对象中的属性 | “PI” in Math |
12 | instanceof |
对象是否某个类型 | [] instanceof Array |
11 | == |
是否相同 | x == y |
11 | === |
更严格的是否相同 | x === y |
11 | != |
是否不相同 | x != y |
11 | !== |
更严格的是否不相同 | x !== y |
10 | & |
按位与 | x & y |
9 | ^ |
按位异或 | x ^ y |
8 | | |
按位或 | x | y |
7 | && |
逻辑与 | x && y |
6 | || |
逻辑或 | x || y |
5 | ?? |
空值合并 | x ?? y |
4 | _ ? _ : _ |
三元条件表达式 | x == y ? "Yes" : "No" |
3 | += |
自运算赋值 | x += y |
3 | /= |
自运算赋值 | x /= y |
3 | -= |
自运算赋值 | x -= y |
3 | *= |
自运算赋值 | x *= y |
3 | %= |
自运算赋值 | x %= y |
3 | <<= |
自运算赋值 | x <<= y |
3 | >>= |
自运算赋值 | x >>= y |
3 | >>>= |
自运算赋值 | x >>>= y |
3 | &= |
自运算赋值 | x &= y |
3 | ^= |
自运算赋值 | x ^= y |
3 | |= |
自运算赋值 | x |= y |
2 | yield |
暂停函数 | yield x |
1 | , |
逗号 | 5 , 6 |
括号具有最高的优先级,在括号中的表达式会最先被运算。