Javascript运算符优先级技术性

前端之家收集整理的这篇文章主要介绍了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解释语言的方式.

猜你在找的JavaScript相关文章