Entonces, ¿por qué exactamente JavaScript (y otros idiomas) 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 estas no están destinadas realmente a ser utilizadas como declaraciones independientes, sino que son realmente diseñado para poder incorporarse a declaraciones más complejas en las que realmente actualiza más de una variable en una declaración.declaraciones donde realmente actualiza más de una variable en una declaración.
Esta declaración actualiza los valores de ambas variables i y j en una declaración. La cuestión es que, mientras que ++ i e i ++ hacen lo mismo en lo que respecta a la actualización, me preocupan que hagan cosas diferentes con respecto a la actualización de otras variables. La declaración anterior se puede escribir como dos declaraciones separadas como esta:
Tenga en cuenta que combinarlos juntos significa que tenemos ocho caracteres en lugar de 13. Por supuesto, la versión más larga es mucho más clara cuando se trata de determinar qué valor tendrá j.
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 en la que se usa.
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 jamás darse cuenta). Es solo una vez que lo combina con otra declaración que hace una diferencia en el valor que se asigna a otra variable o variables.