JavaScript-də prefiks və postfiks tipləri

Əslində inkrement və dekrement əməliyyatlarını iki üsulla yazmaq olar. Gəlin bu üsulları ++ nümunəsində nəzərdən keçirək, -- üçün də hər şey eyni olacaq.

Birinci üsulda əməliyyat dəyişənin adından sonra yazılır, belə: a++, ikinci üsulda isə - dəyişənin adından əvvəl, belə: ++a.

Birinci forma postfiks adlanır, ikincisi isə - prefiks. Gəlin görək, bu iki forma arasında fərq hansı hallarda özünü göstərir.

Tutaq ki, bizim alert(a++) və alert(++a) kodumuz var.

alert(a++) halında dəyişən əvvəl ekrana çıxarılacaq, sonra bir vahid artacaq, alert(++a) halında isə dəyişən əvvəl bir vahid artacaq, sonra ekrana çıxarılacaq.

Aşağıdakı nümunədə birinci alert 0 çıxardacaq, çünki əvvəlcə ekrana çıxış baş verəcək, ondan sonra dəyişən artacaq:

javascriptlet num = 0;
alert(num++); // 0 çıxardacaq
alert(num);   // 1 çıxardacaq

İndi isə dəyişən əvvəl artacaq, ondan sonra ekrana çıxış olacaq:

javascriptlet num = 0;
alert(++num); // 1 çıxardacaq - dəyişən dərhal artdı

Bu davranış təkcə ekrana çıxış üçün deyil, həm də mənimsətmə üçün etibarlıdır:

javascriptlet num1 = 0;
let num2 = num1++; // num2 dəyişəninə 0 yazılacaq
alert(num2); // 0 çıxardacaq
alert(num1); // 1 çıxardacaq - num1 dəyişəni num2-ə yazıldıqdan sonra dəyişdi

İndi isə postfiks formasını prefiks ilə dəyişək:

javascriptlet num1 = 0;
let num2 = ++num1; // num2 dəyişəninə 1 yazılacaq
alert(num2); // 1 çıxardacaq

Əgər bizim əməliyyatımız ayrı bir sətirdə yerinə yetirilirsə, prefiks və postfiks formalari arasında fərq yoxdur:

javascriptlet num = 0;
++num;
num++;
alert(num); // 2 çıxardacaq
Задание 1

Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:

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

Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:

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

Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:

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

Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:

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

Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:

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

Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:

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

Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:

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

Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:

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

Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:

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