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

括号具有最高的优先级,在括号中的表达式会最先被运算。