Прэфіксны і постфіксны тып у JavaScript
На самой справе аперацыі інкрэменту і дэкрэменту
можна запісваць двума спосабамі. Давайце
разгледзім гэтыя спосабы на прыкладзе ++
,
а для --
усё будзе аналагічна.
У першым спосабе аперацыя запісваецца пасля
імені зменнай, вось так: a++
, а
ў другім спосабе - перад іменем зменнай,
вось так: ++a
.
Першая форма называецца постфікснай, а другая - прэфікснай. Давайце паглядзім, у якіх выпадках праяўляецца розніца паміж гэтымі двума формамі.
Хай у нас ёсць код alert(a++)
і
код alert(++a)
.
У выпадку alert(a++)
зменная спачатку
выведзецца, а потым павялічыцца на адзінку,
а ў выпадку alert(++a)
зменная спачатку
павялічыцца на адзінку, а потым выведзецца.
У наступным прыкладзе першы alert
выведзе
0
, так як спачатку спрацуе вывад
на экран, а ўжо потым зменная павялічыцца:
let num = 0;
alert(num++); // выведзе 0
alert(num); // выведзе 1
А цяпер зменная спачатку павялічыцца, а ўжо потым будзе вывад на экран:
let num = 0;
alert(++num); // выведзе 1 - зменная павялічылася адразу
Такая паводзіны справядліва не толькі для вываду на экран, але і для прысвойвання:
let num1 = 0;
let num2 = num1++; // у зменную num2 запiшацца 0
alert(num2); // выведзе 0
alert(num1); // выведзе 1 - зменная num1 змянілася пасля запісу ў num2
А цяпер зменім постфіксную форму на прэфіксную:
let num1 = 0;
let num2 = ++num1; // у зменную num2 запiшацца 1
alert(num2); // выведзе 1
Калі нашая аперацыя выконваецца на асобнай радку, то розніцы паміж прэфікснай і постфікснай формамі няма:
let num = 0;
++num;
num++;
alert(num); // выведзе 2
Не запускаючы код, вызначыце, што выведзецца на экран:
let num = 3;
alert(++num);
Не запускаючы код, вызначыте, што выведзецца на экран:
let num = 3;
alert(num++);
Не запускаючы код, вызначыце, што выведзецца на экран:
let num = 3;
alert(--num);
Не запускаючы код, вызначыце, што выведзецца на экран:
let num = 3;
alert(num--);
Не запускаючы код, вызначыце, што выведзецца на экран:
let num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Не запускаючы код, вызначыце, што выведзецца на экран:
let num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Не запускаючы код, вызначыце, што выведзецца на экран:
let num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Не запускаючы код, вызначыце, што выведзецца на экран:
let num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Не запускаючы код, вызначыце, што выведзецца на экран:
let num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);