2015-10-07 18 views
7

Ich habe eine harte Zeit zu verstehen, was mit der Kombination von Potenzierung und alles andere (Multiplikation, Division, etc) in Gruppe 14 der Javascript Vorrang gemeint ist.Javascript Operator Vorrang Technik

Source - MDN

Drei Fragen:

  1. Was ist die Bedeutung des von rechts nach links und von links nach rechts Assoziativität in einer Gruppe zu kombinieren?
  2. Wie kann der Ausdruck 2 ** 3 * 4 nach diesen Regeln umformuliert werden und trotzdem die gleiche Antwort erhalten? 4 * 2 ** 3 funktioniert ... ist das gemeint?
  3. Wann/wie ist dies nicht gleichbedeutend mit dem scheinbar einfacheren Mittel, der Potenz höhere Priorität einzuräumen?
+0

von rechts nach links bedeutet 2 ** 3 ** 4 = Math.pow (2, Math.pow (3, 4)); –

Antwort

2

1) 2 ** 3 ** 4, von rechts nach links assoziativ, ist 2 ** (3 ** 4). 2/3/4, von links nach rechts assoziativ, ist (2/3)/4.

2/3) Ich glaube, 2 ** 3 * 4 ist (2 ** 3) * 4. 2 * 3 ** 4 ist 2 * (3 ** 4) (wie von es6fiddle ausgewertet).

Dies folgt nicht aus der Tabelle; aber die Potenzierung sollte Vorrang vor der Multiplikation haben. Das Mischen von links nach rechts und von rechts nach links in einem Rang ist seltsam. In der Tat, soweit ich in ES7 drafts sehen konnte, wird es überhaupt nicht grammatikalisch genauso behandelt wie *, / und %, sondern als eine unäre Operation (!).

Beachten Sie auch, dass derzeit keine anderen Motoren als Babel und Traceur ** unterstützen, so dass es an dieser Stelle meist akademisch ist. MDN ist ein Wiki, und der Potenzierungsoperator wurde von einem Mozillian hinzugefügt; aber AFAIK seit Mozilla unterstützt derzeit ** nicht, es dokumentiert nicht wirklich die Art, wie Mozilla die Sprache interpretiert.

+0

Danke! Irgendwie gelang es mir nicht zu verstehen, dass diese Exponentiation experimentell war ... Ich glaube, ich habe es in den schlechten alten Zeiten als essentielles verinnerlicht - ich denke, es ist in FORTRAN :) – NessBird

+0

Exponentiation ist irgendwie essentiell; aber du hast 'Math.pow'. '**' ist nur syntaktischer Zucker. – Amadan

Verwandte Themen