++ i en i ++ Operators verhogen en verlagen

Deze increment-operators en de bijbehorende decrement-operators zijn misschien een beetje verwarrend voor iedereen die ze nog niet eerder is tegengekomen.

Om te beginnen zijn er verschillende manieren om er één toe te voegen of af te trekken.

i = i + 1;
i + = 1;
i ++;
++ik;

Voor het aftrekken van één zijn er dezelfde vier keuzes met - vervangen voor elk +.

Dus waarom biedt JavaScript (en andere talen) precies zoveel verschillende manieren om hetzelfde te doen? Nou, ten eerste zijn sommige van deze alternatieven korter dan andere en dus minder typen. Met + = kunt u gemakkelijk elk nummer en niet slechts één aan een variabele toevoegen zonder de variabelenaam twee keer in te voeren.

Dat verklaart nog steeds niet waarom zowel i ++ als ++ bestaan, omdat beide alleen kunnen worden gebruikt om er één toe te voegen en beide even lang zijn. De reden voor de twee alternatieven is dat deze niet echt bedoeld zijn om als op zichzelf staande verklaringen te worden gebruikt, maar echt zijn ontworpen om te kunnen worden opgenomen in complexere verklaringen waarin u feitelijk meer dan één variabele in de ene verklaring bijwerkt. Verklaringen waarin u eigenlijk meer dan één variabele in de ene instructie bijwerken.

Waarschijnlijk is de eenvoudigste verklaring als volgt:

j = i ++;

Deze instructie werkt de waarden van beide variabelen i en j in de ene instructie bij. Het ding is dat terwijl ++ i en i ++ hetzelfde doen wat betreft het bijwerken van i, ze verschillende dingen doen met betrekking tot het bijwerken van andere variabelen. De bovenstaande verklaring kan worden geschreven als twee afzonderlijke verklaringen zoals deze:

j = i;
i + = 1;

Merk op dat het combineren ervan betekent dat we acht tekens hebben in plaats van 13. Natuurlijk is de langere versie veel duidelijker als het gaat om het uitzoeken welke waarde j zal hebben.

Als we nu naar het alternatief kijken:

j = ++ i;

Deze verklaring is het equivalent van het volgende:

i + = 1;
j = i;

Dit betekent natuurlijk dat j nu een andere waarde heeft dan in het eerste voorbeeld. De positie van de ++ voor of na de variabelenaam bepaalt of de variabele wordt opgehoogd voor of nadat deze wordt gebruikt in de instructie dat deze wordt gebruikt in.

Precies hetzelfde is van toepassing wanneer u het verschil tussen --i en i-- beschouwt, waarbij de positie van de - bepaalt of iemand wordt afgetrokken voor of nadat de waarde wordt gebruikt.

Dus als u het afzonderlijk als een enkele instructie gebruikt, maakt het niet uit of u het vóór of achter de naam van de variabele plaatst (behalve een microscopisch snelheidsverschil dat niemand ooit zal opmerken). Het is pas als je het combineert met een andere instructie dat het een verschil maakt voor de waarde die wordt toegewezen aan een andere variabele of variabelen.