Prefix en postfix type in JavaScript
In werkelijkheid kunnen de increment- en decrement-bewerkingen
op twee manieren worden geschreven. Laten we
deze manieren bekijken aan de hand van het voorbeeld ++,
en voor -- zal alles analoog zijn.
Bij de eerste manier wordt de bewerking geschreven na
de variabelenaam, zoals dit: a++, en
bij de tweede manier - vóór de variabelenaam,
zoals dit: ++a.
De eerste vorm wordt postfix genoemd, en de tweede - prefix. Laten we eens kijken in welke gevallen het verschil tussen deze twee vormen naar voren komt.
Stel dat we de code alert(a++) hebben en
de code alert(++a).
In het geval van alert(a++) wordt de variabele eerst
weergegeven, en daarna met één verhoogd,
en in het geval van alert(++a) wordt de variabele eerst
met één verhoogd, en daarna weergegeven.
In het volgende voorbeeld zal de eerste alert
0 weergeven,
omdat eerst de weergave op het scherm plaatsvindt,
en pas daarna de variabele wordt verhoogd:
let num = 0;
alert(num++); // geeft 0 weer
alert(num); // geeft 1 weer
En nu wordt de variabele eerst verhoogd, en pas daarna volgt de weergave op het scherm:
let num = 0;
alert(++num); // geeft 1 weer - variabele is direct verhoogd
Dit gedrag is niet alleen geldig voor weergave op het scherm, maar ook voor toewijzing:
let num1 = 0;
let num2 = num1++; // in variabele num2 wordt 0 geschreven
alert(num2); // geeft 0 weer
alert(num1); // geeft 1 weer - variabele num1 veranderde na het schrijven naar num2
En nu veranderen we de postfix-vorm naar de prefix-vorm:
let num1 = 0;
let num2 = ++num1; // in variabele num2 wordt 1 geschreven
alert(num2); // geeft 1 weer
Als onze bewerking op een aparte regel wordt uitgevoerd, is er geen verschil tussen de prefix- en postfix- vormen:
let num = 0;
++num;
num++;
alert(num); // geeft 2 weer
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
let num = 3;
alert(++num);
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
let num = 3;
alert(num++);
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
let num = 3;
alert(--num);
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
let num = 3;
alert(num--);
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
let num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
let num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
let num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
let num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Zonder de code uit te voeren, bepaal wat er op het scherm wordt weergegeven:
let num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);