微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Javascript运算符优先级技术性

我很难理解在 Javascript优先级的第14组中,Exponentiation和其他所有内容(乘法,除法等)的组合意味着什么.

Source – MDN

三个问题:

>在一个组中组合从右到左和从左到右的关联性是什么意思?
>如何根据这些规则对表达式2 ** 3 * 4进行重新定义,仍然得到相同的答案? 4 * 2 ** 3作品……是什么意思?
>何时/如何不等于看似更简单的赋予取幂优先权的权宜之计?

解决方法

1)2 ** 3 ** 4,从右到左关联,是2 **(3 ** 4). 2/3/4,从左到右关联,是(2/3)/ 4.

2/3)我相信2 ** 3 * 4是(2 ** 3)* 4. 2 * 3 ** 4是2 *(3 ** 4)(由es6fiddle评估).

这不是从表中得出的;但取幂应优先于乘法.在一个优先级别中从左到右和从右到左混合是很奇怪的.事实上,就我在ES7 drafts中所看到的而言,它在语法上与*,/和%的处理方式完全不同,而是作为一元操作(!).

另请注意,除了Babel和Traceur之外,目前没有任何引擎支持**,所以此时它主要是学术性的. MDN是一个wiki,并且由Mozillian添加了取幂运算符;但是AFAIK,因为Mozilla目前不支持**,它实际上并没有记录Mozilla解释语言的方式.

原文地址:https://www.jb51.cc/js/157447.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐