Prefiks- ja postfikstüüp JavaScriptis

Tegelikult saab inkrementi ja dekrementi operatsioone kirja panna kahel viisil. Vaatame neid viise näite abil ++, ja -- puhul on kõik sarnane.

Esimesel viisil kirjutatakse operatsioon pärast muutuja nime, nii: a++, ja teisel viisil - enne muutuja nime, nii: ++a.

Esimest vormi nimetatakse postfiksseks, ja teist - prefiksseks. Vaatame, millistel juhtudel nende kahe vormi vahel erinevus ilmneb.

Olgu meil kood alert(a++) ja kood alert(++a).

Juhul alert(a++) kuvatakse muutuja kõigepealt ekraanile ja seejärel suurendatakse seda ühe võrra, aga juhul alert(++a) suurendatakse muutujat kõigepealt ühe võrra ja seejärel kuvatakse see ekraanile.

Järgmises näites kuvab esimene alert väärtuse 0, kuna kõigepealt toimub ekraanile kuvamine ja alles seejärel muutuja suureneb:

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

Nüüd suureneb muutuja kõigepealt ja alles seejärel toimub ekraanile kuvamine:

javascriptlet num = 0;
alert(++num); // kuvab 1 - muutuja suurenes kohe

Selline käitumine kehtib mitte ainult ekraanile kuvamise, vaid ka omistamise puhul:

javascriptlet num1 = 0;
let num2 = num1++; // muutujasse num2 kirjutatakse 0
alert(num2); // kuvab 0
alert(num1); // kuvab 1 - muutuja num1 muutus pärast num2-sse kirjutamist

Nüüd muudame postfiksvormi prefiksvormiks:

javascriptlet num1 = 0;
let num2 = ++num1; // muutujasse num2 kirjutatakse 1
alert(num2); // kuvab 1

Kui meie operatsioon sooritatakse eraldi real, siis prefiks- ja postfiksvormi vahel erinevust pole:

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

Koodi käivitamata määrake, mis kuvatakse ekraanile:

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

Koodi käivitamata määrake, mis kuvatakse ekraanile:

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

Koodi käivitamata määrake, mis kuvatakse ekraanile:

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

Koodi käivitamata määrake, mis kuvatakse ekraanile:

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

Koodi käivitamata määrake, mis kuvatakse ekraanile:

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

Koodi käivitamata määrake, mis kuvatakse ekraanile:

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

Koodi käivitamata määrake, mis kuvatakse ekraanile:

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

Koodi käivitamata määrake, mis kuvatakse ekraanile:

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

Koodi käivitamata määrake, mis kuvatakse ekraanile:

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