JavaScript 基础
Document
运算符
深入数据和类型
函数进阶
原型、继承
类
浏览器存储
Web API
事件
错误处理
异步编程
网络请求
模块
练习
实例
工具与规范
软件架构模式
设计模式
数学课上学过,当一个公式中存在乘除号时应先被计算,再计算加减号。
JavaScript 中也是,当一个表达式中存在多个运算符时,执行顺序由运算符的优先级决定。
$$jsdemo$$
$$edit$$
let result = 5 + 2 * 3 // 11
alert(result)
参考完整的运算符优先级汇总表 - MDN。
$$tip
赋值运算符也有优先级,并且优先级很低,所以赋值运算符几乎总是最后执行。
$$
分组运算符
( ... )
分组运算符的优先级是最高的,它可以帮助我们改变运算顺序。
$$jsdemo$$
$$edit$$
let result = 5 + 2 * 3 // 11
alert(result)
result = (5 + 2) * 3 // 21
alert(result)
$$tip
当不明确哪个运算符优先级高时,可以用分组运算符来明确先后顺序,多用分组运算符没有坏处。
$$
练习
- 以下的计算结果是什么呢,试着口算一下。
3 + 2 * 5 ** 2
4 + 2 * 3 == 2 + 2 ** 3
-1 + 4 * 2 > 5 + 6 / 2
$$answer
$$jsdemo$$
$$edit$$
alert(3 + 2 * 5 ** 2) // 53
alert(4 + 2 * 3 == 2 + 2 ** 3) // true
alert(-1 + 4 * 2 > 5 + 6 / 2) // false
$$