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:
let num = 0;
alert(num++); // 0 çıxardacaq
alert(num); // 1 çıxardacaq
İndi isə dəyişən əvvəl artacaq, ondan sonra ekrana çıxış olacaq:
let 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:
let 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:
let 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:
let num = 0;
++num;
num++;
alert(num); // 2 çıxardacaq
Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:
let num = 3;
alert(++num);
Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:
let num = 3;
alert(num++);
Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:
let num = 3;
alert(--num);
Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:
let num = 3;
alert(num--);
Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:
let num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:
let num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:
let num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:
let num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Kodu işə salmadan müəyyən edin ki, ekranda nə çıxarılacaq:
let num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);