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:

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

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

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

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

javascriptlet num = 0;
++num;
num++;
alert(num); // prikazaće 2
Задание 1

Bez pokretanja koda, odredite šta će biti prikazano na ekranu:

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

Bez pokretanja koda, odredite šta će biti prikazano na ekranu:

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

Bez pokretanja koda, odredite šta će biti prikazano na ekranu:

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

Bez pokretanja koda, odredite šta će biti prikazano na ekranu:

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

Bez pokretanja koda, odredite šta će biti prikazano na ekranu:

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

Bez pokretanja koda, odredite šta će biti prikazano na ekranu:

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

Bez pokretanja koda, odredite šta će biti prikazano na ekranu:

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

Bez pokretanja koda, odredite šta će biti prikazano na ekranu:

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

Bez pokretanja koda, odredite šta će biti prikazano na ekranu:

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