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);