Etuliitteinen ja jälkiliitteinen tyyppi JavaScriptissä
Itse asiassa inkrementti- ja dekrementtioperaatiot
voidaan kirjoittaa kahdella tavalla. Tarkastelkaamme
näitä tapoja esimerkissä ++,
ja --:lle kaikki on vastaavaa.
Ensimmäisessä tavassa operaatio kirjoitetaan
muuttujan nimen jälkeen, näin: a++, ja
toisessa tavassa - ennen muuttujan nimeä,
näin: ++a.
Ensimmäistä muotoa kutsutaan jälkiliitteiseksi, ja toista - etuliitteiseksi. Katsotaan, missä tapauksissa näiden kahden muodon välillä ilmenee eroja.
Olkoon meillä koodi alert(a++) ja
koodi alert(++a).
Tapauksessa alert(a++) muuttuja
tulostetaan ensin, ja sitten se kasvaa yhdellä,
kun taas tapauksessa alert(++a) muuttuja
kasvaa ensin yhdellä, ja sitten se tulostetaan.
Seuraavassa esimerkissä ensimmäinen alert tulostaa
0, koska ensin suoritetaan tulostus
näytölle, ja vasta sitten muuttuja kasvaa:
let num = 0;
alert(num++); // tulostaa 0
alert(num); // tulostaa 1
Ja nyt muuttuja kasvaa ensin, ja vasta sitten tulostus näytölle tapahtuu:
let num = 0;
alert(++num); // tulostaa 1 - muuttuja kasvoi välittömästi
Tällainen käyttäytyminen ei päde vain tulostukseen näytölle, vaan myös sijoittamiseen:
let num1 = 0;
let num2 = num1++; // muuttujaan num2 kirjoitetaan 0
alert(num2); // tulostaa 0
alert(num1); // tulostaa 1 - muuttuja num1 muuttui tallennuksen jälkeen num2:een
Ja nyt vaihdetaan jälkiliitteinen muoto etuliitteiseksi:
let num1 = 0;
let num2 = ++num1; // muuttujaan num2 kirjoitetaan 1
alert(num2); // tulostaa 1
Jos operaatiomme suoritetaan omalla rivillään, etuliitteisen ja jälkiliitteisen muodon välillä ei ole eroa:
let num = 0;
++num;
num++;
alert(num); // tulostaa 2
Käyttämättä koodia, määritä, mitä tulostetaan näytölle:
let num = 3;
alert(++num);
Käyttämättä koodia, määritä, mitä tulostetaan näytölle:
let num = 3;
alert(num++);
Käyttämättä koodia, määritä, mitä tulostetaan näytölle:
let num = 3;
alert(--num);
Käyttämättä koodia, määritä, mitä tulostetaan näytölle:
let num = 3;
alert(num--);
Käyttämättä koodia, määritä, mitä tulostetaan näytölle:
let num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Käyttämättä koodia, määritä, mitä tulostetaan näytölle:
let num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Käyttämättä koodia, määritä, mitä tulostetaan näytölle:
let num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Käyttämättä koodia, määritä, mitä tulostetaan näytölle:
let num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Käyttämättä koodia, määritä, mitä tulostetaan näytölle:
let num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);