购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.7 运算符优先级

4.7.1 数学运算符的优先级

JavaScript中的数学运算有明确的运算顺序,乘、除法优先于加、减法计算。比如:

在本段代码中,JavaScript会先计算2*3,结果是6;再计算4/5,结果是0.8;最后计算加、减法,即1+6-0.8,最终输出结果是6.2。

4.7.2 逻辑运算符的优先级

逻辑运算也有运算顺序,JavaScript会按照非、与、或的顺序进行计算。比如:

在这段代码中,JavaScript会先进行非运算,即“!0”。0是“负性”的,故被非运算符置反后结果是true。原式等价于:

接下来,JavaScript会进行与运算,即“3&&true”。根据前文讲述的短路计算规则,“3&&true”的运算结果为true。原式等价于:

根据短路计算规则,最终结果为2。

4.7.3 综合运算优先级

如果表达式非常复杂,例如,表达式中既有数学运算,又有关系运算和逻辑运算,则运算的先后顺序为:数学运算、关系运算、逻辑运算。比如:

这段代码的运行结果是多少呢?

表达式“!5>=1+4||5+true*3”中含有三种运算,JavaScript会按以下运算顺序执行计算。首先进行数学运算,“1+4”是数学运算,计算结果为5;“5+true*3”也是数学运算,根据隐式转换规则,true将被转换为1参与计算,因此“5+true*3”的运算结果是8。上述代码可以简化为:

然后进行关系运算。表达式“5>=5”是关系运算,结果是true。上述代码可以简化为:

最后进行逻辑运算。逻辑运算的顺序是非、与、或,因此“!true”会优先计算,结果是false。而“false||8”表达式根据短路计算规则输出结果8。

上面我们讲解了运算符执行顺序的优先级。其实在JavaScript中,我们可以通过小括号来改变运算符的优先级。更准确地说,是小括号内的运算优先于小括号外的运算。在运算时,如果有小括号嵌套,那么小括号内部的优先级更高。下面我们将对案例提出不同需求,你需要思考如何使用小括号来实现需求中的执行顺序。比如:

这三个案例分别为4.7.1节、4.7.2节和4.7.3节的案例,这里不多做讲解。下面是实现上述需求的代码,具体如下:

这段代码通过小括号改变原有的运算顺序,从而实现需求。 o2RIxbNPOnEJs7vxqJ0AHgm1hAtmUh/y2tZCmi0ruxKiC6BebbynW8TUhbufVrXj

点击中间区域
呼出菜单
上一章
目录
下一章
×