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:

javascriptlet 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:

javascriptlet 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:

javascriptlet 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:

javascriptlet 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:

javascriptlet num = 0;
++num;
num++;
alert(num); // gibt 2 aus
Задание 1

Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:

javascriptlet num = 3;
alert(++num);
Задание 2

Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:

javascriptlet num = 3;
alert(num++);
Задание 3

Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:

javascriptlet num = 3;
alert(--num);
Задание 4

Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:

javascriptlet num = 3;
alert(num--);
Задание 5

Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:

javascriptlet num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Задание 6

Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:

javascriptlet num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Задание 7

Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:

javascriptlet num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Задание 8

Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:

javascriptlet num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Задание 9

Bestimmen Sie, ohne den Code auszuführen, was auf den Bildschirm ausgegeben wird:

javascriptlet num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);