Diferencia entre let, var y const
Si son como yo que aprendieron a programar en Javascript hace muchos años, aprendieron a declarar variables con la palabra reservada var. Hoy en día si bien puedes seguir usando var, también tenemos la oportunidad de usar let y const. En este tutorial vamos a ver cuándo usar var, let y const para entender el concepto y que ustedes también aprendan a manejarlo adecuadamente.
Var
var se usa para definir variables, pero una característica es que si declaramos una variable con var y no asignamos ningún valor, al momento de imprimir o usarla vamos a recibir un error de ‘undefined’, este es el valor por defecto en variables declaradas así.
Otro de los temas importantes para resaltar al usar var es que tiene un alcance al momento de definirla. El alcance lo llamamos a nivel de función, y quiere decir que una variable declarada con var va a ser accesible dentro del alcance de una función completa, sin importar si la definimos dentro de un condicional o un ciclo.
En este ejemplo tenemos declaradas variables al inicio de la función, dentro del ciclo y después las imprimimos. El resultado es que sí podemos obtener el valor porque dichas variables son accesibles en todo el alcance de la función discountPrices()
Let
let es la palabra reservada para también definir variables mutables como con var. La diferencia radica en dos temas importantes. La primera es que si definimos una variable a través de let sin asignar valor y después queremos usarla, no vamos a obtener un ‘undefined’ sino un error de referencia porque la variable no está definida.
En el ejemplo se imrpime una variable que no está asignada o definida y por lo tanto obtenemos un ReferenceError. La otra diferencia es el alcance que tiene let vs var, ya que mientras con var tenemos alcance a nivel de función, con let tenemos alcance a nivel de bloque, por lo tanto si tenemos lo siguiente:
Vamos a tener un error al momento de llamar a la función, porque la variable i solo está declarada dentro del ciclo y cuando se trate de imprimir Javscript detectará que el alcance es otro y por lo tanto dirá que no está definida.
Const
const la usamos para definir variables que no pueden tener más de un valor a lo largo de su existencia. Las constantes son aquellos valores que una vez que se asignan ya no pueden cambiarse, y para eso ya podemos usar la palabra reservada const. Si tratamos de asignar un valor a una constante ya definida vamos a tener un error