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