Was ist der Unterschied zwischen ++ i und i ++ in JavaScript?

9

auf meiner Suche zu lernen und zu verbessern mein JavaScript Ich stieß auf ein Skript, das eine switch / case-Anweisung hat und ich bemerkte, dass einige Variablen erhöht mit ++ mit der Variablen vor dem ++ und dann einige Variablen haben die ++ nach Die Variable. Was ist der Unterschied zwischen diesen? Hier ist ein Beispiel für das, was ich zu erklären versuche, die m- und y-Variablen zu beachten.

%Vor%     
Mark Sandman 16.06.2011, 21:10
quelle

6 Antworten

32

++i gibt den Wert von i zurück, nachdem es inkrementiert wurde. i++ gibt den Wert von i vor dem Inkrementieren zurück.

Wenn das ++ vor seinem Operanden steht, wird es als "pre-increment" -Operator bezeichnet, und wenn es danach kommt, wird es als "post-increment" -Operator bezeichnet.

Diese Unterscheidung ist nur wichtig, wenn Sie etwas mit dem Ergebnis machen.

%Vor%

Beachten Sie jedoch, dass i++ zwar den Wert vor der Inkrementierung zurückgibt, aber den Wert nach der Konvertierung in eine Zahl zurückgibt.

Also

%Vor%     
Mike Samuel 16.06.2011, 21:12
quelle
5

Derselbe Unterschied wie jeder andere c-style ++ incrementor.

foo = ++i ist das gleiche wie:

%Vor%

foo = i++ ist dasselbe wie;

%Vor%     
zzzzBov 16.06.2011 21:13
quelle
2
%Vor%     
Connor Smith 16.06.2011 21:13
quelle
1

In JS (sowie C, Perl und wahrscheinlich ein Dutzend anderer Sprachen) erhöht der ++ i-Operator i , bevor er die Anweisung auswertet, und i ++ inkrementiert sie danach. Gleiches mit -.

Beispiel:

%Vor%

Zeigt "1" an, aber:

%Vor%

Zeigt "2" an.

    
Flimzy 16.06.2011 21:13
quelle
0

Um zu veranschaulichen, angenommen:

%Vor%

dann

%Vor%

führt zu

%Vor%

während

%Vor%

führt zu

%Vor%     
Rob Raisch 16.06.2011 21:14
quelle
0

++ i ist Pre-Inkrement, i ++ ist Post-Inkrement.

Wenn Sie die Variable nur inkrementieren und das Ergebnis nicht gleichzeitig verwenden, sind sie gleichwertig.

In diesem Fall sollten Sie wirklich i + = 1 für die Lesbarkeit verwenden (sagt Douglas Crockford ..)

    
erlando 16.06.2011 21:26
quelle

Tags und Links