Prefik och postfikstyp i JavaScript
Faktum är att operationerna inkrement och dekrement
kan skrivas på två sätt. Låt oss
titta på dessa sätt med exemplet ++,
och för -- kommer allt att vara analogt.
I det första sättet skrivs operationen efter
variabelnamnet, så här: a++, och
i det andra sättet - före variabelnamnet,
så här: ++a.
Den första formen kallas postfix, och den andra - prefix. Låt oss se i vilka fall skillnaden mellan dessa två former uppstår.
Låt oss säga att vi har koden alert(a++) och
koden alert(++a).
I fallet alert(a++) kommer variabeln först
att visas, och sedan ökas med ett,
medan i fallet alert(++a) kommer variabeln först
att ökas med ett, och sedan visas.
I nästa exempel kommer den första alert att visa
0, eftersom utskriften till skärmen först sker,
och först därefter ökas variabeln:
let num = 0;
alert(num++); // visar 0
alert(num); // visar 1
Och nu kommer variabeln först att ökas, och först därefter sker utskriften till skärmen:
let num = 0;
alert(++num); // visar 1 - variabeln ökade omedelbart
Detta beteende gäller inte bara för utskrift till skärmen, utan även för tilldelning:
let num1 = 0;
let num2 = num1++; // i variabeln num2 kommer 0 att skrivas
alert(num2); // visar 0
alert(num1); // visar 1 - variabeln num1 ändrades efter att ha skrivits till num2
Och nu ändrar vi postfixformen till prefixform:
let num1 = 0;
let num2 = ++num1; // i variabeln num2 kommer 1 att skrivas
alert(num2); // visar 1
Om vår operation utförs på en separat rad, så finns det ingen skillnad mellan prefix- och postfix- former:
let num = 0;
++num;
num++;
alert(num); // visar 2
Utan att köra koden, bestäm vad som kommer att visas på skärmen:
let num = 3;
alert(++num);
Utan att köra koden, bestäm vad som kommer att visas på skärmen:
let num = 3;
alert(num++);
Utan att köra koden, bestäm vad som kommer att visas på skärmen:
let num = 3;
alert(--num);
Utan att köra koden, bestäm vad som kommer att visas på skärmen:
let num = 3;
alert(num--);
Utan att köra koden, bestäm vad som kommer att visas på skärmen:
let num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Utan att köra koden, bestäm vad som kommer att visas på skärmen:
let num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Utan att köra koden, bestäm vad som kommer att visas på skärmen:
let num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Utan att köra koden, bestäm vad som kommer att visas på skärmen:
let num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Utan att köra koden, bestäm vad som kommer att visas på skärmen:
let num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);