Прэфіксны і постфіксны тып у 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 запiшацца 0
alert(num2); // выведзе 0
alert(num1); // выведзе 1 - зменная num1 змянілася пасля запісу ў num2

А цяпер зменім постфіксную форму на прэфіксную:

javascriptlet num1 = 0;
let num2 = ++num1; // у зменную num2 запiшацца 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);