我很難理解Javascript優先級組14中指數運算和其他所有操作(乘法,除法等)的組合是什麼意思。Javascript運算符優先級技術性
三個問題:
- 什麼是相結合的意義從右到左,左到右聯在一組?
- 如何將表達式2 ** 3 * 4按照這些規則改寫,並且仍然得到相同的答案? 4 * 2 ** 3作品...是什麼意思?
- 何時/如何不等於給予指數更高優先級的表面上更簡單的權宜之計?
我很難理解Javascript優先級組14中指數運算和其他所有操作(乘法,除法等)的組合是什麼意思。Javascript運算符優先級技術性
三個問題:
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解釋語言的方式。
從右到左意味着2 ** 3 ** 4 = Math.pow(2,Math.pow(3,4)); –