++ i e i ++ Operadores de incremento y decremento

Estos operadores de incremento y los operadores de decremento correspondientes son quizás un poco confusos para cualquiera que no los haya visto antes.

Para empezar, hay varias formas diferentes de sumar o restar una.

i = i + 1;
i + = 1;
i ++;
++yo;

Para restar uno hay las mismas cuatro opciones con - sustituido por cada +.

Entonces, ¿por qué exactamente JavaScript (y otros lenguajes) proporcionan tantas formas diferentes de hacer lo mismo? Bueno, por un lado, algunas de estas alternativas son más cortas que otras y, por lo tanto, implican menos tipeo. Usar + = permite fácilmente agregar cualquier número y no solo uno a una variable sin tener que ingresar el nombre de la variable dos veces.

Eso todavía no explica por qué existen tanto i ++ como ++ i, ya que ambos solo se pueden usar para agregar uno y ambos tienen la misma longitud. La razón de las dos alternativas es que en realidad no están destinadas a ser utilizadas como declaraciones independientes, sino que están realmente diseñadas para poder incorporarse en declaraciones más complejas en las que realmente actualiza más de una variable en una declaración. en realidad actualizar más de una variable en la declaración.

Probablemente la afirmación más simple es la siguiente:

j = i ++;

Esta declaración actualiza los valores de ambas variables i y j en una declaración. La cuestión es que, si bien ++ i e i ++ hacen lo mismo en lo que respecta a la actualización i, hacen cosas diferentes con respecto a la actualización de otras variables. La declaración anterior se puede escribir como dos declaraciones separadas como esta:

j = i;
i + = 1;

Tenga en cuenta que combinarlos significa que tenemos ocho caracteres en lugar de 13. Por supuesto, la versión más larga es mucho más clara en lo que respecta a determinar qué valor tendrá j.

Ahora si miramos la alternativa:

j = ++ i;

Esta declaración es el equivalente de lo siguiente:

i + = 1;
j = i;

Esto, por supuesto, significa que j ahora tiene un valor diferente al que tenía en el primer ejemplo. La posición de ++ antes o después del nombre de la variable controla si la variable se incrementa antes o después de que se use en la declaración de que se usa en.

Exactamente lo mismo se aplica cuando considera la diferencia entre --i e i-- donde la posición de la - determina si uno se resta antes o después de usar el valor.

Entonces, cuando lo usa por separado como una sola declaración, no importa si lo coloca antes o después del nombre de la variable (excepto por una diferencia de velocidad microscópica que nadie notará). Es solo una vez que lo combina con otra declaración que hace una diferencia en el valor que se asigna a alguna otra variable o variables.