Tipo prefijo y postfijo en JavaScript
En realidad, las operaciones de incremento y decremento
se pueden escribir de dos maneras. Veamos
estas formas usando el ejemplo de ++,
y para -- todo será análogo.
En la primera forma, la operación se escribe después
del nombre de la variable, así: a++, y
en la segunda forma, antes del nombre de la variable,
así: ++a.
La primera forma se llama postfija, y la segunda - prefija. Veamos en qué casos se manifiesta la diferencia entre estas dos formas.
Supongamos que tenemos el código alert(a++) y
el código alert(++a).
En el caso de alert(a++), la variable primero
se mostrará y luego se incrementará en uno,
y en el caso de alert(++a), la variable primero
se incrementará en uno y luego se mostrará.
En el siguiente ejemplo, la primera alert mostrará
0, porque primero se realizará la salida
a la pantalla, y solo luego la variable se incrementará:
let num = 0;
alert(num++); // mostrará 0
alert(num); // mostrará 1
Y ahora la variable primero se incrementará, y luego se realizará la salida a la pantalla:
let num = 0;
alert(++num); // mostrará 1 - la variable aumentó inmediatamente
Este comportamiento es válido no solo para la salida a la pantalla, sino también para la asignación:
let num1 = 0;
let num2 = num1++; // en la variable num2 se escribirá 0
alert(num2); // mostrará 0
alert(num1); // mostrará 1 - la variable num1 cambió después de escribirse en num2
Y ahora cambiemos la forma postfija por la prefija:
let num1 = 0;
let num2 = ++num1; // en la variable num2 se escribirá 1
alert(num2); // mostrará 1
Si nuestra operación se realiza en una línea separada, no hay diferencia entre las formas prefija y postfija:
let num = 0;
++num;
num++;
alert(num); // mostrará 2
Sin ejecutar el código, determine qué se mostrará en la pantalla:
let num = 3;
alert(++num);
Sin ejecutar el código, determine qué se mostrará en la pantalla:
let num = 3;
alert(num++);
Sin ejecutar el código, determine qué se mostrará en la pantalla:
let num = 3;
alert(--num);
Sin ejecutar el código, determine qué se mostrará en la pantalla:
let num = 3;
alert(num--);
Sin ejecutar el código, determine qué se mostrará en la pantalla:
let num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Sin ejecutar el código, determine qué se mostrará en la pantalla:
let num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Sin ejecutar el código, determine qué se mostrará en la pantalla:
let num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Sin ejecutar el código, determine qué se mostrará en la pantalla:
let num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Sin ejecutar el código, determine qué se mostrará en la pantalla:
let num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);