Primero un poquito de historia. En ES5, únicamente contábamos con “var” como tipo de variable para declarar; pero en ES6 tenemos tres tipos de variables: var, let y const.
Hablemos un poco de VAR:
Lo que podemos decir de esta palabra reservada es que:
Las variables declaradas con var son procesadas antes de la ejecución del código.
El scope de una variable declarada con var, es su contexto de ejecución.
Veamos el siguiente bloque de código.
functionexplicacionDeVar(){
var a = 10;
console.log(a); // a equivale 10 if(true){
var a = 20;
console.log(a); // a equivale 20
}
console.log(a); // a equivale 20
}
Como pueden ver el valor de la variable “a” se actualiza globalmente a “20” dentro de la función. Lo que pasa con Var es lo siguiente. Podemos declarar “var a” las veces que queramos en nuestro código y esto es una mala practica porque puedes terminar creando variables globales y reasignando valores sin darte cuenta e incluso si nuestro código es muy extenso podemos romper nuestro código si usamos mal una mala declaración con “Var”. Pero por suerte aparecieron Let y Const.
Let
Veamos el siguiente código:
var i = 60;
(functionexplicacionLet(){
for(let i = 0; i < 5; i++){
console.log(i) // 0, 1, 2, 3, 4
}
})();
console.log("Despues del loop", i) // 60
Aun que var y let usen la misma letra “i” son completamente distintos. Algo nuevo que tiene let es el block scope let solo vive dentro del bloque de código que es for. Fuera de for la variable let no existe. Otra dato interesante de “let” es que no podemos declarar nuevamente la misma variable let dentro de su entorno local o global es decir en el ejemplo no podemos declarar “let i” nuevamente dentro de for.
Const
Const es igual que let, con una pequeña gran diferencia: no puedes re asignar su valor ES UN VALOR QUE NUNCA CAMBIARA.
functionconstante(){
const x = 10;
console.log(x); // output 10
x = 20; //throws type errorconsole.log(x);
}
La consola mostrara un error cuando tratemos de re asignar el valor de una variable const.
En mi opinión es ideal usar const si no tienes que re asignar el valor de tu variable en ningún momento.
Es momento de dejar de usar “var” en nuestro código y cada que uses let es bueno analizar si realmente cambiará el valor de esta variable en algún momento. De no ser así, utiliza const.