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ó:
let 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:
let 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:
let 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:
let 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:
let num = 0;
++num;
num++;
alert(num); // kiírja: 2
Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:
let num = 3;
alert(++num);
Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:
let num = 3;
alert(num++);
Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:
let num = 3;
alert(--num);
Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:
let num = 3;
alert(num--);
Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:
let num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:
let num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:
let num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:
let num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Kód futtatása nélkül határozd meg, mit ír ki a képernyőre:
let num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);