Tipo prefisso e postfisso in JavaScript
In realtà, le operazioni di incremento e decremento
possono essere scritte in due modi. Esaminiamo
questi metodi usando l'esempio di ++,
e per -- tutto sarà analogo.
Nel primo metodo, l'operazione viene scritta dopo
il nome della variabile, in questo modo: a++, mentre
nel secondo metodo - prima del nome della variabile,
in questo modo: ++a.
La prima forma è chiamata postfissa, e la seconda - prefissa. Vediamo in quali casi si manifesta la differenza tra queste due forme.
Supponiamo di avere il codice alert(a++) e
il codice alert(++a).
Nel caso di alert(a++) la variabile prima
viene visualizzata, e poi aumenta di uno,
mentre nel caso di alert(++a) la variabile prima
aumenta di uno, e poi viene visualizzata.
Nel seguente esempio, il primo alert visualizzerà
0, perché prima avverrà l'output
a schermo, e solo dopo la variabile aumenterà:
let num = 0;
alert(num++); // visualizzerà 0
alert(num); // visualizzerà 1
E ora la variabile prima aumenterà, e solo dopo ci sarà l'output a schermo:
let num = 0;
alert(++num); // visualizzerà 1 - la variabile è aumentata immediatamente
Questo comportamento è valido non solo per l'output a schermo, ma anche per l'assegnazione:
let num1 = 0;
let num2 = num1++; // nella variabile num2 verrà scritto 0
alert(num2); // visualizzerà 0
alert(num1); // visualizzerà 1 - la variabile num1 è cambiata dopo l'assegnazione a num2
E ora cambiamo la forma postfissa con quella prefissa:
let num1 = 0;
let num2 = ++num1; // nella variabile num2 verrà scritto 1
alert(num2); // visualizzerà 1
Se la nostra operazione viene eseguita su una riga separata, non c'è differenza tra le forme prefissa e postfissa:
let num = 0;
++num;
num++;
alert(num); // visualizzerà 2
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
let num = 3;
alert(++num);
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
let num = 3;
alert(num++);
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
let num = 3;
alert(--num);
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
let num = 3;
alert(num--);
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
let num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
let num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
let num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
let num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
let num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);