Навъи пешвандӣ ва пасвандӣ дар 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);