Präfix und Postfix in JavaScript
Tatsächlich können Inkrement- und Dekrement-Operationen
auf zwei Arten geschrieben werden. Lassen Sie uns
diese Methoden am Beispiel von ++ betrachten,
für -- gilt analoges.
Bei der ersten Methode wird die Operation nach
dem Variablennamen geschrieben, so: a++, und
bei der zweiten Methode - vor dem Variablennamen,
so: ++a.
Die erste Form wird Postfix genannt, und die zweite - Präfix. Lassen Sie uns sehen, in welchen Fällen sich der Unterschied zwischen diesen beiden Formen zeigt.
Angenommen, wir haben den Code alert(a++) und
den Code alert(++a).
Im Fall alert(a++) wird die Variable zuerst
ausgegeben und dann um eins erhöht,
und im Fall alert(++a) wird die Variable zuerst
um eins erhöht und dann ausgegeben.
Im folgenden Beispiel gibt das erste alert
0 aus, da zuerst die Ausgabe
auf den Bildschirm erfolgt und erst dann die Variable erhöht wird:
let num = 0;
alert(num++); // gibt 0 aus
alert(num); // gibt 1 aus
Und jetzt wird die Variable zuerst erhöht, und erst dann erfolgt die Ausgabe auf den Bildschirm:
let num = 0;
alert(++num); // gibt 1 aus - Variable wurde sofort erhöht
Dieses Verhalten gilt nicht nur für die Ausgabe auf den Bildschirm, sondern auch für die Zuweisung:
let num1 = 0;
let num2 = num1++; // in die Variable num2 wird 0 geschrieben
alert(num2); // gibt 0 aus
alert(num1); // gibt 1 aus - Variable num1 änderte sich nach dem Schreiben in num2
Und jetzt ändern wir die Postfix-Form in die Präfix-Form:
let num1 = 0;
let num2 = ++num1; // in die Variable num2 wird 1 geschrieben
alert(num2); // gibt 1 aus
Wenn unsere Operation in einer separaten Zeile ausgeführt wird, gibt es keinen Unterschied zwischen Präfix- und Postfix- Formen:
let num = 0;
++num;
num++;
alert(num); // gibt 2 aus
Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:
let num = 3;
alert(++num);
Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:
let num = 3;
alert(num++);
Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:
let num = 3;
alert(--num);
Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:
let num = 3;
alert(num--);
Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:
let num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:
let num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:
let num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:
let num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:
let num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);