JavaScriptda prefiks va postfiks tipi

Aslida inkrement va dekrement amallarini ikki usulda yozish mumkin. Keling ushbu usullarni ++ misolida ko'rib chiqaylik, -- uchun ham hammasi o'xshash bo'ladi.

Birinchi usulda amal o'zgaruvchi nomidan keyin yoziladi, mana shunday: a++, ikkinchi usulda esa - o'zgaruvchi nomidan oldin, mana shunday: ++a.

Birinchi shakl postfiksli deb ataladi, ikkinchisi esa - prefiksli. Keling, ushbu ikkala shakl o'rtasidagi farq qachon namoyon bo'lishini ko'rib chiqaylik.

Bizda alert(a++) kodi va alert(++a) kodi bo'lsin.

alert(a++) holatida o'zgaruvchi avval chiqariladi, keyin bittaga oshadi, alert(++a) holatida esa o'zgaruvchi avval bittaga oshadi, keyin chiqariladi.

Quyidagi misolda birinchi alert 0 ni chiqaradi, chunki avval ekranga chiqarish amalga oshadi, keyin o'zgaruvchi oshadi:

javascriptlet num = 0;
alert(num++); // 0 ni chiqaradi
alert(num);   // 1 ni chiqaradi

Endi esa o'zgaruvchi avval oshadi, keyin ekranga chiqariladi:

javascriptlet num = 0;
alert(++num); // 1 ni chiqaradi - o'zgaruvchi darhol oshdi

Bunday xatti-harakat nafaqat ekranga chiqarish uchun, balki tayinlash uchun ham amal qiladi:

javascriptlet num1 = 0;
let num2 = num1++; // num2 o'zgaruvchisiga 0 yoziladi
alert(num2); // 0 ni chiqaradi
alert(num1); // 1 ni chiqaradi - num1 o'zgaruvchisi num2 ga yozilgandan keyin o'zgardi

Endi postfiks shaklini prefiks shakliga o'zgartiramiz:

javascriptlet num1 = 0;
let num2 = ++num1; // num2 o'zgaruvchisiga 1 yoziladi
alert(num2); // 1 ni chiqaradi

Agar bizning amalimiz alohida qatorda bajarilsa, prefiks va postfiks shaklari o'rtasida farq yo'q:

javascriptlet num = 0;
++num;
num++;
alert(num); // 2 ni chiqaradi
Задание 1

Kodni ishlamasdan, ekranga nima chiqarilishini aniqlang:

javascriptlet num = 3;
alert(++num);
Задание 2

Kodni ishlamasdan, ekranga nima chiqarilishini aniqlang:

javascriptlet num = 3;
alert(num++);
Задание 3

Kodni ishlamasdan, ekranga nima chiqarilishini aniqlang:

javascriptlet num = 3;
alert(--num);
Задание 4

Kodni ishlamasdan, ekranga nima chiqarilishini aniqlang:

javascriptlet num = 3;
alert(num--);
Задание 5

Kodni ishlamasdan, ekranga nima chiqarilishini aniqlang:

javascriptlet num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Задание 6

Kodni ishlamasdan, ekranga nima chiqarilishini aniqlang:

javascriptlet num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Задание 7

Kodni ishlamasdan, ekranga nima chiqarilishini aniqlang:

javascriptlet num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Задание 8

Kodni ishlamasdan, ekranga nima chiqarilishini aniqlang:

javascriptlet num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Задание 9

Kodni ishlamasdan, ekranga nima chiqarilishini aniqlang:

javascriptlet num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);