Նախածանցային և վերջածանցային տիպերը 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);