Префиксен и постфиксен тип во 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);