Var, Let y Const — JS ES6

Germán Cutraro
Aug 12, 2017 · 3 min read

En ES6 ya tenemos varias formas de declarar nuestras variables. En ES5 lo hacíamos con la palabra var como en el siguiente ejemplo:

El problema de var es el scope que genera, es decir el ámbito que crea para la variable en cuestión.

Podemos ver el problema en el siguiente ejemplo:

Tenemos un bucle for que imprime del uno al cinco.

Ahora bien, si insertamos un console.log fuera del bucle vemos como sigue accediendo al valor de la variable, de esta forma, imprime el siguiente valor (6).

Se puede acceder al valor de la variable fuera del bucle
Si la variable fuese de bloque no podría imprimir el número 6

Por lo tanto, se recomienda dejar de usar vary de esta forma, reemplazarla por let y const.


Let

let funciona como variable de bloque. Ahora bien, ¿Qué es un bloque?

Un bloque es basicamente una estructura de código creada por llaves.

Sintaxis

Veamos el mismo ejemplo pero usando let:

Según la consola el mensaje de error será mas o menos parecido

Como podemos observar si utilizamos let la variable solo existirá dentro del bucle por lo tanto no podremos acceder a ella fuera del bloque. Este ejemplo funcionaría para un condicional o para cualquier otro caso de bloque.

Const

Const tiene un funcionamiento parecido a let, con la diferencia que el valor de una constante no puede cambiarse a través de la reasignación, y no se puede redeclarar.

Sintaxis

Como se mencionó, no se puede reasignar una variable constante, por lo tanto si quisiéramos hacer:

Nos daría un error:

Sin embargo no hay que confundirse con el tema de constantes y cuando usamos arrays y objects, para entenderlo veamos un ejemplo:

Como podemos observar tenemos un array de lenguajes, el cual luego le agregamos un nuevo elemento. Es decir, aunque nuestro array sea definido como constante, le podemos agregar y eliminar elementos.

Resultado:

Lo mismo para un objeto:

En este caso le agregamos un atributo al objeto persona, como ves, sin errores:

¿Cuál usar? ¿Const o Let?

Depende de la situación, personalmente recomiendo usar let cuando sepamos que el elemento puede sufrir mutación y/o cambios en un futuro. Y const cuando sepamos que nuestro elemento no va a sufrir ninguna alteración.



Por favor compártelo!

Germán Cutraro

Written by

Full Stack JavaScript Developer // germancutraro.com

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade