Prefiksni i postfiksni tip u JavaScript
U stvari, operacije inkrementa i dekrementa
mogu se zapisati na dva načina. Hajde da
razmotrimo ove načine na primeru ++,
a za -- sve će biti analogno.
U prvom načinu operacija se zapisuje posle
imena promenljive, ovako: a++, a
u drugom načinu - pre imena promenljive,
ovako: ++a.
Prvi oblik se zove postfiksni, a drugi - prefiksni. Hajde da pogledamo, u kojim slučajevima se pokazuje razlika između ova dva oblika.
Neka imamo kod alert(a++) i
kod alert(++a).
U slučaju alert(a++) promenljiva će se prvo
prikazati, a zatim će se uvećati za jedan,
a u slučaju alert(++a) promenljiva će se prvo
uvećati za jedan, a zatim će se prikazati.
U sledećem primeru prvi alert će prikazati
0, jer će se prvo izvršiti prikaz
na ekranu, a tek onda će se promenljiva uvećati:
let num = 0;
alert(num++); // prikazaće 0
alert(num); // prikazaće 1
A sada će se promenljiva prvo uvećati, a zatim će biti prikaz na ekranu:
let num = 0;
alert(++num); // prikazaće 1 - promenljiva se odmah uvećala
Ovo ponašanje važi ne samo za prikaz na ekranu, već i za dodelu vrednosti:
let num1 = 0;
let num2 = num1++; // u promenljivu num2 biće upisano 0
alert(num2); // prikazaće 0
alert(num1); // prikazaće 1 - promenljiva num1 se promenila posle upisa u num2
A sada ćemo promeniti postfiksni oblik u prefiksni:
let num1 = 0;
let num2 = ++num1; // u promenljivu num2 biće upisano 1
alert(num2); // prikazaće 1
Ako se naša operacija izvršava u posebnom redu, onda nema razlike između prefiksnog i postfiksnog oblika:
let num = 0;
++num;
num++;
alert(num); // prikazaće 2
Bez pokretanja koda, odredite šta će biti prikazano na ekranu:
let num = 3;
alert(++num);
Bez pokretanja koda, odredite šta će biti prikazano na ekranu:
let num = 3;
alert(num++);
Bez pokretanja koda, odredite šta će biti prikazano na ekranu:
let num = 3;
alert(--num);
Bez pokretanja koda, odredite šta će biti prikazano na ekranu:
let num = 3;
alert(num--);
Bez pokretanja koda, odredite šta će biti prikazano na ekranu:
let num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Bez pokretanja koda, odredite šta će biti prikazano na ekranu:
let num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Bez pokretanja koda, odredite šta će biti prikazano na ekranu:
let num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Bez pokretanja koda, odredite šta će biti prikazano na ekranu:
let num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Bez pokretanja koda, odredite šta će biti prikazano na ekranu:
let num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);