Prefix és postfix típus JavaScriptben

Az inkrementálás és dekrementálás műveletek kétféleképpen írhatók fel. Vizsgáljuk meg ezeket a módszereket a ++ példáján, a -- esetében pedig minden hasonlóan működik.

Az első módszerben a művelet a változó neve után kerül felírásra, így: a++, míg a második módszerben - a változó neve előtt, így: ++a.

Az első forma postfix, a második pedig prefix. Lássuk, milyen esetekben mutatkozik meg a különbség a két forma között.

Tegyük fel, hogy van egy alert(a++) kódunk és egy alert(++a) kódunk.

A alert(a++) esetében a változó először kiíródik, majd növekszik eggyel, míg a alert(++a) esetében a változó először növekszik eggyel, majd kerül kiíratásra.

A következő példában az első alert 0-t fog kiírni, mivel először a képernyőre írás történik, majd csak azután növelődik a változó:

javascriptlet num = 0;
alert(num++); // kiírja: 0
alert(num);   // kiírja: 1

Most pedig a változó először növelődik, majd utána történik a kiíratás:

javascriptlet num = 0;
alert(++num); // kiírja: 1 - a változó azonnal növekedett

Ez a viselkedés nem csak a képernyőre kiíráskor érvényes, hanem a értékadásnál is:

javascriptlet num1 = 0;
let num2 = num1++; // a num2 változóba 0 kerül
alert(num2); // kiírja: 0
alert(num1); // kiírja: 1 - a num1 változó a num2-be írás után változott meg

Most változtassuk meg a postfix formát prefix formára:

javascriptlet num1 = 0;
let num2 = ++num1; // a num2 változóba 1 kerül
alert(num2); // kiírja: 1

Ha a műveletünk külön soron történik, akkor nincs különbség a prefix és postfix formák között:

javascriptlet num = 0;
++num;
num++;
alert(num); // kiírja: 2
Задание 1

Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:

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

Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:

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

Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:

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

Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:

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

Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:

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

Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:

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

Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:

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

Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:

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

Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:

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