
Simón Escobar
Pregunta¿Cuál es la diferencia entre var, let y const?
-
var definimos una variable con local scope, también nos permite utilizar un comportamiento llamado hoisting, sin generar ningún error.
-
let definimos variable con block scope, las variables declaradas de esta manera nos genera un error de referencia cuando intentamos utilizar hoisting.
-
const definimos variables de sólo lectura (no confundir con inmutables), esto quiere decir que, cuando asignamos una variable, el nombre de esta va estar asignada a un puntero en memoria, el cual no puede ser sobreescrito o reasignado.
- var: define un contexto de funciones.
- let: define un contexto de bloque (funciones, condicionales, iteraciones)
- const: define un contexto de bloque y el valor de la variable es inmutable.

Alejandro Guevara Navas

Garcia Erika
Me encanta encontrar respuestas en estos foros.

3mheit
Estas son las diferencias de Let, Var y Const. const : Nos permite declarar variables inmutables, osea no se puede cambiar.
var y let : Nos permiten crear variables mutables que si se puede cambiar.
var : Nos permite definir variables al alcanse de su función mas sercana, osea dentro de la función.Y un detalle Tiene un valor por defecto de undefined.
let : Nos permite definir variables al alcanse de su bloque mas sercano, osea de su estructura.Otro detalle, se usa let para definir una variable que si tenga su valor por el programador.

CARLOS ALBERTO COMBITA
Muchas gracias por la explicación tampoco me habia quedado claro con el curso.

Oriana Suljeis Posada Molina

Juan Castro
Esta lectura te puede ayudar: https://platzi.com/blog/la-diferencia-entre-let-y-var/. :wink:

Javier Nava
ejemplo con var
var mivariable = "el valor" console.info("su valor en " , window.mivariable)
carga la variable en el window(contecto global)por eso hay que tener cuidado
ejemplo con const
const valorUnico = "valorUnico" console.info("este valor sera indefinido" , window.valorUnico) valorUnico = "Esta linea dara error"
no carga variable en el contexto global y tiene un valor constante y no pueder modificado y redeclarado
ejemplo con let
for (let i = 0; i < 5; i++){ console.log(`aqui se ve let ${i}` ) } console.log('esto dara error') console.log(i)
su alcance es definido en un bloque de codigo es muy util y no se cargara en el window

Fernando Palacios Palacios
Sumo el tema del contexto de declaracion de variables:

Andres Foronda
Hola, voy a tratar de ser lo mas explicito posible, espero pueda dar en el clavo con mi explicación, si tienes dudas por favor preguntame.
var se usa desde el standard ecmascript5 (ES5), let y const fueron añadidos desde ecmascript2015 (ES2015 o ES6)
La declaración de variables con var, te permite hacer modificaciones en los valores almacenados, en el caso de let, este cambio también es permitido, pero const hace referencia a una constante, así que el valor de esta no puede ser cambiado una vez sea declarado, por otro lado, al declarar una variable como const debes asignarle un valor en ese momento, no después.
// ES5 var nombre5 = 'Diana Castaño'; var edad5 = 28; nombre5 = 'Diana Foronda'; // Digamos que Diana se caso y cambio su apellido, así que la variable nombre5 ha cambiado su valor // ES6 // const vacio; // lanza error, una constante debe tener un valor asignado en su declaración. const nombre6 = 'Diana Castaño'; // Al declarar nombre6 como const, su valor no puede mutar o ser cambiado. let edad6 = 28; // let puede mutar o ser cambiado nombre6 = 'Diana Foronda' // Esta vez Diana no se puede casar // No se puede cambiar nombre6 si es const, obtenemos un error.
En el caso de var , las variables son function-scope, mientras que const y let son block-scope :
//ES5 var x = 0; // Variable x declarada como var function four5(){ for (var i = 0; i < 5; i++){ // un for loop que va desde 0 hasta i menor a 5, osea 4 x = i; // asignamos el valor de i a x, como vamos hasta 4, porque cuando i alcanza el valor de 5 el lopop termina, x tiene el valor 4 } } four5(); console.log(x) //al imprimir x, efectivamente es 4 // La x declarada con el valor 0 y la x dentro de la funcion, son la misma x. //ES6 let y = 0; function four6(){ for(let i = 0; i < 5; i++) { y = i; // Esta y no ha sido declarada si quiera, el alcance de cada variable esta sujeta a los {}, as'i que es undefined } } four6(); console.log(y); // Retorna 0, el valor declarado en un principio, la variable y no entró en lafuncion four6(), asi que son y diferentes.
Este tema es extenso, pero esos son conceptos significativos.
Marcos Daniel Villamediana Calderón
Si no me equivoco eso es parte del ecmascript6, que muchos la definen como la ultima versión de Javascript, y en el ecmascript se crearon estas dos nuevos tipos de varibles, const es la nueva forma de declarar una variable que es constante, osea que su valor no va a cambiar en un futuro (siempre será el mismo), y let es una variable que si puede cambiar su valor pero funciona únicamente en el bloque de código que fue declarada, y var es la típica forma de declarar una variable que también puede cambiar su valor pero tiene pequeña diferencia con scope del let (no se exactamente cual jaja).