Prefiksa un postfiksa veids JavaScript
Patiesībā inkrementācijas un dekrementācijas operācijas
var tikt ierakstītas divos veidos. Apskatīsim
šos veidus, izmantojot piemēru ++,
un priekš -- viss būs līdzīgi.
Pirmajā veidā operācija tiek ierakstīta aiz
mainīgā nosaukuma, šādi: a++, bet
otrajā veidā - pirms mainīgā nosaukuma,
šādi: ++a.
Pirmo formu sauc par postfikso, bet otro - par prefikso. Apskatīsim, kādos gadījumos parādās atšķirība starp šīm divām formām.
Pieņemsim, ka mums ir kods alert(a++) un
kods alert(++a).
Gadījumā alert(a++) mainīgais vispirms
tiks izvadīts, un pēc tam palielināts par vienu,
savukārt gadījumā alert(++a) mainīgais vispirms
tiks palielināts par vienu, un pēc tam izvadīts.
Nākamajā piemērā pirmais alert izvadīs
0, jo vispirms notiks izvade
uz ekrānu, un tikai pēc tam mainīgais tiks palielināts:
let num = 0;
alert(num++); // izvadīs 0
alert(num); // izvadīs 1
Bet šeit mainīgais vispirms palielināsies, un tikai pēc tam notiks izvade uz ekrānu:
let num = 0;
alert(++num); // izvadīs 1 - mainīgais tika palielināts uzreiz
Šāda uzvedība ir raksturīga ne tikai izvadei uz ekrānu, bet arī piešķiršanai:
let num1 = 0;
let num2 = num1++; // mainīgajā num2 tiks ierakstīts 0
alert(num2); // izvadīs 0
alert(num1); // izvadīs 1 - mainīgais num1 mainījās pēc ierakstīšanas num2
Tagad nomainīsim postfiksa formu uz prefiksa:
let num1 = 0;
let num2 = ++num1; // mainīgajā num2 tiks ierakstīts 1
alert(num2); // izvadīs 1
Ja mūsu operācija tiek veikta atsevišķā rindā, tad starpības starp prefiksa un postfiksa formām nav:
let num = 0;
++num;
num++;
alert(num); // izvadīs 2
Neveicot kodu, nosakiet, kas tiks izvadīts uz ekrāna:
let num = 3;
alert(++num);
Neveicot kodu, nosakiet, kas tiks izvadīts uz ekrāna:
let num = 3;
alert(num++);
Neveicot kodu, nosakiet, kas tiks izvadīts uz ekrāna:
let num = 3;
alert(--num);
Neveicot kodu, nosakiet, kas tiks izvadīts uz ekrāna:
let num = 3;
alert(num--);
Neveicot kodu, nosakiet, kas tiks izvadīts uz ekrāna:
let num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Neveicot kodu, nosakiet, kas tiks izvadīts uz ekrāna:
let num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Neveicot kodu, nosakiet, kas tiks izvadīts uz ekrāna:
let num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Neveicot kodu, nosakiet, kas tiks izvadīts uz ekrāna:
let num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Neveicot kodu, nosakiet, kas tiks izvadīts uz ekrāna:
let num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);