In JavaScript können Sie den ++Operator vor ( Vorinkrementierung ) oder nach dem Variablennamen ( Nachinkrementierung ) verwenden. Was sind, wenn überhaupt, die Unterschiede zwischen diesen Methoden zum Inkrementieren einer Variablen?
In JavaScript können Sie den ++Operator vor ( Vorinkrementierung ) oder nach dem Variablennamen ( Nachinkrementierung ) verwenden. Was sind, wenn überhaupt, die Unterschiede zwischen diesen Methoden zum Inkrementieren einer Variablen?
Antworten:
Gleich wie in anderen Sprachen:
++x (Vorinkrementierung) bedeutet "Inkrementieren der Variablen; der Wert des Ausdrucks ist der Endwert"x++ (Nachinkrementierung) bedeutet "Erinnere dich an den ursprünglichen Wert und erhöhe dann die Variable; der Wert des Ausdrucks ist der ursprüngliche Wert".Wenn sie nun als eigenständige Anweisung verwendet werden, bedeuten sie dasselbe:
x++;
++x;
Der Unterschied entsteht, wenn Sie den Wert des Ausdrucks an anderer Stelle verwenden. Beispielsweise:
x = 0;
y = array[x++]; // This will get array[0]
x = 0;
y = array[++x]; // This will get array[1]
+ 1stattdessen verwenden würden ++? Gibt es eine Möglichkeit, vor oder nach dem Hinzufügen von Zahlen zu erhöhen?
xmit 10 begonnen wird, ist der Wert von r121, was 10 + 11 ist. Der Wert des ersten x++Ausdrucks ist 10 und xwird auf 11 erhöht. Der Wert des zweiten x++Ausdrucks ist 11 und xwird auf 12 erhöht.
++x erhöht den Wert, wertet ihn aus und speichert ihn.x++ wertet den Wert aus, erhöht ihn und speichert ihn.var n = 0, m = 0;
alert(n++); /* Shows 0, then stores n = 1 */
alert(++m); /* Shows 1, then stores m = 1 */
Beachten Sie, dass die Verwendung nach ++xMöglichkeit geringfügige Leistungsvorteile bietet, da Sie die Variable lesen, ändern, dann auswerten und speichern. Im Vergleich zum x++Operator, in dem Sie den Wert lesen, auswerten, ändern und dann speichern.
Soweit ich weiß, tun sie dasselbe, wenn Sie sie eigenständig verwenden. Wenn Sie versuchen, das Ergebnis als Ausdruck auszugeben, können sie unterschiedlich sein. Versuchen Sie alert (i ++) im Vergleich zu alert (++ i), um den Unterschied zu erkennen. i ++ wertet i vor dem Hinzufügen aus und ++ i führt das Hinzufügen vor dem Auswerten durch.
Ein Beispiel finden Sie unter http://jsfiddle.net/xaDC4/ .
var a = 1;
var b = ++a;
alert('a:' + a + ';b:' + b); //a:2;b:2
var c = 1;
var d = c++;
alert('c:' + c + ';d:' + d); //c:2;d:1
var x = 0, y = 0;
//post-increment: i++ returns value then adds one to it
console.log('x++ will log: ', x++); //0
console.log('x after x++ : ', x); //1
//pre-increment: adds one to the value, then returns it
console.log('++y will log: ', ++y); //1
console.log('y after ++y : ', y); //1
Ich habe eine Erklärung zum Verständnis von Post-Inkrement und Pre-Inkrement. Also lege ich es hierher.
Weisen wir 0zux
let x = 0;
Beginnen wir mit dem Nachinkrement
console.log(x++); // Outputs 0
Warum?
Lassen Sie x++uns den Ausdruck aufschlüsseln
x = x;
x = x + 1;
Die erste Anweisung gibt den Wert zurück, der xist0
Und später, wenn Sie xirgendwo eine Variable verwenden, wird die zweite Anweisung ausgeführt
Die zweite Anweisung gibt den Wert dieses x + 1Ausdrucks zurück(0 + 1) = 1
Denken Sie an den Wert xin diesem Zustand1
Beginnen wir nun mit der Vorinkrementierung
console.log(++x); // Outputs 2
Warum?
Lassen Sie ++xuns den Ausdruck aufschlüsseln
x = x + 1;
x = x;
Die erste Anweisung gibt den Wert dieses x + 1Ausdrucks zurück(1 + 1) = 2
Die zweite Anweisung gibt den Wert zurück, der xso ist, 2dass x = 2sie zurückgibt2
Ich hoffe, dies würde Ihnen helfen zu verstehen, was Post-Inkrement und Pre-Inkrement sind!