Префиксни и постфиксни тип у JavaScript-у

У ствари, операције инкремента и декремента се могу записати на два начина. Хајде да размотримо ове начине на примеру ++, а за -- све ће бити аналогно.

У првом начину операција се записује после имена променљиве, овако: a++, а у другом начину - пре имена променљиве, овако: ++a.

Први облик се назива постфиксни, а други - префиксни. Хајде да видимо, у ком случају се испољава разлика између ова два облика.

Нека имамо код alert(a++) и код alert(++a).

У случају alert(a++) променљива ће се прво исписати, а затим ће се повећати за један, а у случају alert(++a) променљива ће се прво повећати за један, а затим ће се исписати.

У следећем примеру први alert ће исписати 0, јер ће се прво извршити испис на екран, а тек онда ће се променљива повећати:

javascriptlet num = 0;
alert(num++); // исписаће 0
alert(num);   // исписаће 1

А сада ће се променљива прво повећати, а тек онда ће се извршити испис на екран:

javascriptlet num = 0;
alert(++num); // исписаће 1 - променљива се одмах повећала

Овакво понашање важи не само за испис на екран, већ и за доделу вредности:

javascriptlet num1 = 0;
let num2 = num1++; // у променљиву num2 уписаће се 0
alert(num2); // исписаће 0
alert(num1); // исписаће 1 - променљива num1 се променила након уписа у num2

А сада променимо постфиксни облик у префиксни:

javascriptlet num1 = 0;
let num2 = ++num1; // у променљиву num2 уписаће се 1
alert(num2); // исписаће 1

Ако се наша операција извршава у посебном реду, онда нема разлике између префиксног и постфиксног облика:

javascriptlet num = 0;
++num;
num++;
alert(num); // исписаће 2
Задание 1

Без покретања кода, одредите шта ће се исписати на екран:

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

Без покретања кода, одредите шта ће се исписати на екран:

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

Без покретања кода, одредите шта ће се исписати на екран:

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

Без покретања кода, одредите шта ће се исписати на екран:

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

Без покретања кода, одредите шта ће се исписати на екран:

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

Без покретања кода, одредите шта ће се исписати на екран:

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

Без покретања кода, одредите шта ће се исписати на екран:

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

Без покретања кода, одредите шта ће се исписати на екран:

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

Без покретања кода, одредите шта ће се исписати на екран:

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