![Java Script从入门到精通(第5版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/758/52842758/b_52842758.jpg)
2.3.8 运算符的优先级与结合性
JavaScript中的运算符都有明确的优先级与结合性。优先级较高的运算符将先于优先级较低的运算符进行运算;结合性则是指具有同等优先级的运算符将按照怎样的顺序进行运算。JavaScript中运算符的优先级与结合性如表2.9所示。
表2.9 JavaScript运算符的优先级与结合性
![](https://epubservercos.yuewen.com/F2DC7F/31398433307916706/epubprivate/OEBPS/Images/Figure-T52_55057.jpg?sign=1738855446-pttb7D2KOyQWWlXpMjQqM9mw7LcAITb6-0-51a6550ffaa92f180c49131f78afc73a)
例如,下列代码显示了运算符优先级的作用。
var a; //声明变量 a = 10-(2+3)<5&&7>6; //为变量赋值 alert(a); //输出变量的值
执行上述代码,结果如图2.16所示。
![](https://epubservercos.yuewen.com/F2DC7F/31398433307916706/epubprivate/OEBPS/Images/Figure-P52_13260.jpg?sign=1738855446-zEHCOnzR7TUr2pw5X84kpxI4YgjSiuIg-0-0c50ec1c5690a60a0de4568852243a46)
图2.16 优先级示例输出结果
当在表达式中连续出现的几个运算符优先级相同时,其运算的优先顺序由其结合性决定。结合性有向左结合和向右结合两种。例如,运算符“+”是向左结合的,在计算表达式“a+b+c”的值时,会先计算“a+b”,即“(a+b)+c”;而赋值运算符“=”是向右结合的,在计算表达式“a=b=1”的值时,会先计算“b=1”。下列代码说明了“=”的向右结合性。
var a = 1; //声明变量并赋值 b=a=10; //对变量b赋值 alert("b="+b); //输出变量b的值
执行上述代码,结果如图2.17所示。
![](https://epubservercos.yuewen.com/F2DC7F/31398433307916706/epubprivate/OEBPS/Images/Figure-P52_13261.jpg?sign=1738855446-qzULA7DqQATEpj33WSSGyQBaKC9H6Jlu-0-0279125762da75cc644993f74a244b19)
图2.17 结合性示例输出结果
【例2.11】运算符优先级的使用。(实例位置:资源包\TM\sl\2\11)
假设手机原来的话费余额是10元,通话资费为0.1元/min,流量资费为0.3元/MB,在使用了30 MB流量后,计算手机话费余额还可以进行多长时间的通话,代码如下。
<script type="text/javascript"> var balance = 10; //定义手机话费余额变量 var call = 0.1; //定义通话资费变量 var traffic = 0.3; //定义流量资费变量 var minutes = (balance-traffic*30)/call; //计算余额可通话分钟数 document.write("手机话费余额还可以通话"+minutes+"min"); //输出字符串 </script>
执行上述代码,结果如图2.18所示。
![](https://epubservercos.yuewen.com/F2DC7F/31398433307916706/epubprivate/OEBPS/Images/Figure-P53_13334.jpg?sign=1738855446-Kck2DHOkR3ZRL4Mq9rcDdqkggxtakPf3-0-bc2b43055a5da0590f88de9a5a526890)
图2.18 输出手机话费余额可以进行通话的分钟数
编程训练(答案位置:资源包\TM\sl\2\编程训练)
【训练5】计算本息合计 假设某银行定期存款3年的年利率为2.75%,某客户的存款金额为100 000元,计算该客户存款3年后的本息合计是多少。(提示:本息合计=存款金额+存款金额*年利率*存款期限)
【训练6】判断考试成绩是否及格 考试成绩达到60分以上表示及格。周星星的英语考试成绩是65分,使用条件运算符判断该考试成绩是否及格。
【训练7】计算梯形稻田的面积 有一块梯形稻田,稻田上边缘长为30 m,下边缘长为50 m,高度为30 m,计算这块梯形稻田的面积。