2016-09-10 5 views
0

Ich gehe durch das Kapitel "Grammer" in Kyle's You Dont Know Js.Verwechslung Über den Vorrang des Bedieners

Per this link at MDN, ...++Postfix increment hat einen höheren Vorrang vor = & sogar ++...Prefix increment. In JavaScript scheint der folgende Code das Gegenteil zu beweisen.

var a = 1; 
var b = a++; // b = 1; a = 2; 
var c = ++a; // c = 3; a = 3; 

Was mache ich falsch? Zeigt der obige Code nicht, dass = & ...++Postfix increment eine höhere Priorität haben als = & ++...?

+0

bereitgestellt Code ist mehr über Post und Pre Schritt als ' – Rayon

+0

Post Erhöhen/Verringern immer„returns“precedence' der vorherige Wert - Vorrang ist irrelevant für die„Rückkehr“Wert –

Antwort

1

Die Reihenfolge der Auswertung ist (von hoch zu niedrig Vorrang): Postfix-Operator a++, Präfixoperator ++a, Additionsoperator + (von links nach rechts), und dem Zuweisungsoperator = von MDN.

Werfen Sie einen Blick auf die folgenden:

var a = 1; 
var b = a++ + ++a + a++; 
// The order is: 
// b = 1 + ++a + a++; 
// b = 1 + ++a + 2; 
// b = 1 + 4 + 2; 
// b = 7; a = 4; 

Die Reihenfolge der Auswertung gehalten wird, nur, dass der Postfix-Operator den Wert von a erhöht, nachdem die letzte Operation, das heißt der Zuweisungsoperator beendet hat.

+0

Danke, es mir viele Bewertungen nahm, um vollständig zu erfassen Ihr Beispiel, aber ich fühle, dass ich es jetzt verstehe. Gutes Beispiel & die angenommene Antwort. – Kayote