运算符优先级(Operator Precedence)描述了算术表达式中运算的执行顺序。
乘法 (*) 和除法 (/) 的优先级高于加法 (+) 和减法 (-)。
实例
与传统数学一样,先进行乘法运算:
let x = 100 + 50 * 3;
亲自试一试
使用圆括号时,先计算圆括号内的运算:
let x = (100 + 50) * 3;
亲自试一试
优先级相同的运算(如 * 和 /)从左到右计算:
let x = 100 / 50 * 3;
亲自试一试
运算符优先级值
括号中的表达式在表达式的其余部分之前计算,函数在结果用于表达式的其余部分之前执行:
优先级 运算符 描述 例子
18 ( ) 表达式分组 (100 + 50) * 3
17 . 属于成员 person.name
17 [] 属于成员 person["name"]
17 ?. 可选链 ES2020 x ?. y
17 () 函数调用 myFunction()
17 new 带参的新建 new Date("June 5,2022")
16 new 不带参的新建 new Date()
增量运算符
后缀递增在前缀递增之前执行。
15 ++ 后缀递增 i++
15 -- 后缀递减 i--
14 ++ 前缀递增 ++i
14 -- 前缀递减 --i
NOT 运算符
14 ! 逻辑非 !(x==y)
14 ~ 按位非 ~x
一元运算符
14 + 一元加 +x
14 - 一元减 -x
14 typeof 数据类型 typeof x
14 void 评估空 void(0)
14 delete 属性删除 delete myCar.color
算术运算符
指数运算在乘法之前执行。
乘法和除法在加法和减法之前执行。
13 ** 指数运算 ES2016 10 ** 2
12 * 乘 10 * 5
12 / 除 10 / 5
12 % 除法余数 10 % 5
11 + 加 10 + 5
11 - 减 10 - 5
11 + 串联 "Bill" + "Gates"
移位运算符
10 << 左移 x << 2
10 >> 右移(带符号) x >> 2
10 >>> 右移(无符号) x >>> 2
关系运算符
9 in 对象中的属性 "PI" in Math
9 instanceof 对象的实例 x instanceof Array
比较运算符
9 < 小于 x < y
9 <= 小于或等于 x <= y
9 > 大于 x > y
9 >= 大于或等于 x >= Array
8 == 等于 x == y
8 === 严格相等 x === y
8 != 不相等 x != y
8 !== 严格不相等 x !== y
位运算符
7 & 按位与 x & y
6 ^ 按位异或 x ^ y
5 | 按位或 x | y
逻辑运算符
4 && 逻辑与 x && y
3 || 逻辑或 x || y
3 ?? 空值合并 ES2020 x ?? y
条件(三元)运算符
2 ? : 条件 ? "yes" : "no"
赋值运算符
赋值在其他操作之后执行。
2 = 简单赋值 x = y
2 : 冒号赋值 x: 5
2 += 加法赋值 x += y
2 -= 减法赋值 x -= y
2 *= 乘法赋值 x *= y
2 **= 指数赋值 x **= y
2 /= 除法赋值 x /= y
2 %= 取余赋值 x %= y
2 <<= 左移赋值 x <<= y
2 >>= 右移赋值 x >>= y
2 >>>= 无符号右移 x >>>= y
2 &= 位与赋值 x &= y
2 |= 位或赋值 x |= y
2 ^= 位异或赋值 x ^= y
2 &&= 逻辑与赋值 x &= y
2 ||= 逻辑或赋值 x ||= y
2 => 箭头 x => y
2 yield 暂停 / 恢复 yield x
2 yield* 委托运算符 yield* x
2 ... 展开运算符 ... x
1 , 逗号 x , y
另请参阅
教程:JavaScript 运算符
参考手册:JavaScript 运算符
JS 正则表达式
JS 异常
JavaScript 和 HTML DOM 参考手册
JavaScript 实例
JavaScript 测验
JavaScript 高级教程
W3School 简体中文版提供的内容仅用于培训和测试,不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关。版权所有,保留一切权利。 |