JavaScript — Declarando variables con const, let… y var (?)

Niskeydi Michel
2 min readJul 20, 2018

Como seguro ya saben, tenemos tres formas de declarar variables en nuestro código JS (hasta ahora lol), los cuáles son:

  1. Const
  2. Let
  3. Var

Los dos primeros se comportan de la misma manera a nivel de scopes, pero como en todas las familias, tenemos un rebelde aquí, sí, nuestro fiel amigo var. Y como dicen por ahí, hasta en las mejores familias sucede. Let’s see!

Declarando constantes (const)

Una constante es simplemente una variable, el cuál el valor de la misma no puede cambiarse. Como su nombre lo indica, una “constante”. La misma puede ser global o local según el scope en el cuál se está declarando. Una particularidad de las constantes es que necesariamente debes inicializarlas al momento de declararlas.

Declarando variables con let

Podemos decir que declarar una variable con let es prácticamente lo mismo que una constante, con la excepción de que al contrario de lo que pasa con las constantes, inicializar nuestra variable es opcional y que el valor de nuestra variable puede cambiar, es reasignable. Al igual que con las constantes, let permite declarar variables de alcance limitado (block scope) al ámbito en dónde se esté usando.

Declarando variables con var

Okay, ya vimos como declarar variables con let y const, ahora veamos qué pasa con nuestra “oveja negra”.

Var nos permite declarar variables las cuáles opcionalmente las podemos inicializar, y la misma es reasignable. Sin embargo, las variables declaradas con var no tienen alcance de bloque y se da un comportamiento peculiar en ellas llamado hoisting.

Encontrarás más info acerca de qué es hoisting en este post: https://www.campusmvp.es/recursos/post/que-es-el-hoisting-en-javascript.aspx

Conclusión

Declarar variables con var tiene dos grandes diferencias respecto a declararlas con let, las cuáles pudimos notar en los scripts anteriores (espero xD).

1ro.- Como mencionamos antes las variables declaradas con var no tienen block scope, eso quiere decir que si reasignanos una variable dentro de un bloque, este seguirá teniendo el mismo valor fuera de este (tal como se muestra con las variables cantidad, precio y total), y 2do.- todas las variables declaradas con var se ejecutan primero, eso quiere decir que no importa dónde declaremos nuestra variable haciendo uso de var, el siempre lo “moverá” al inicio de nuestra función o script (nótese el ejemplo con la variable mensaje).

Esto son características propias de las variables declaradas con var, lo cuál no pasa con let o const.

--

--

Niskeydi Michel

Enthusiastic, self-taught and affectionate for application development and focused on application architecture with an emphasis on Web technologies.