Prefiksinis ir postfiksinis tipas JavaScript

Iš tikrųjų inkremento ir dekremento operacijos gali būti užrašomos dviem būdais. Pažiūrėkime šiuos būdus su pavyzdžiu ++, o -- viskas bus analogiška.

Pirmuoju būdu operacija rašoma po kintamojo pavadinimo, štai taip: a++, o antruoju būdu - prieš kintamojo pavadinimą, štai taip: ++a.

Pirmoji forma vadinama postfiksine, o antroji - prefiksine. Pažiūrėkime, kokiais atvejais pasireiškia skirtumas tarp šių dviejų formų.

Tarkime, turime kodą alert(a++) ir kodą alert(++a).

Atveju alert(a++) kintamasis pirma bus atvaizduotas, o tada padidintas vienetu, o atveju alert(++a) kintamasis pirma bus padidintas vienetu, o tada atvaizduotas.

Šiame pavyzdyje pirmasis alert atvaizduos 0, nes pirma įvyks atvaizdavimas ekrane, o tik tada kintamasis padidės:

javascriptlet num = 0;
alert(num++); // atvaizduos 0
alert(num);   // atvaizduos 1

O dabar kintamasis pirma padidės, o tada bus atvaizduotas ekrane:

javascriptlet num = 0;
alert(++num); // atvaizduos 1 - kintamasis padidėjo iš karto

Toks elgesys tinka ne tik atvaizdavimui ekrane, bet ir priskyrimui:

javascriptlet num1 = 0;
let num2 = num1++; // į kintamąjį num2 bus įrašyta 0
alert(num2); // atvaizduos 0
alert(num1); // atvaizduos 1 - kintamasis num1 pasikeitė po įrašymo į num2

O dabar pakeiskime postfiksine forma į prefiksinę:

javascriptlet num1 = 0;
let num2 = ++num1; // į kintamąjį num2 bus įrašyta 1
alert(num2); // atvaizduos 1

Jei mūsų operacija atliekama atskirame teksto eilutėje, tarp prefiksinės ir postfiksinės formų skirtumo nėra:

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

Nepaleisdami kodo, nustatykite, kas bus atvaizduota ekrane:

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

Nepaleisdami kodo, nustatykite, kas bus atvaizduota ekrane:

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

Nepaleisdami kodo, nustatykite, kas bus atvaizduota ekrane:

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

Nepaleisdami kodo, nustatykite, kas bus atvaizduota ekrane:

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

Nepaleisdami kodo, nustatykite, kas bus atvaizduota ekrane:

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

Nepaleisdami kodo, nustatykite, kas bus atvaizduota ekrane:

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

Nepaleisdami kodo, nustatykite, kas bus atvaizduota ekrane:

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

Nepaleisdami kodo, nustatykite, kas bus atvaizduota ekrane:

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

Nepaleisdami kodo, nustatykite, kas bus atvaizduota ekrane:

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