¿Duda sobre la diferencia de variables?
Tengo una pregunta cual es la diferencia entre var y let las dos se pueden colcoar en variables no pero mi pregunta es cuando se coloca var y cuando se coloca let
Tengo una pregunta cual es la diferencia entre var y let las dos se pueden colcoar en variables no pero mi pregunta es cuando se coloca var y cuando se coloca let
Tengo una pregunta cual es la diferencia entre var y let las dos se pueden colcoar en variables no pero mi pregunta es cuando se coloca var y cuando se coloca let
Tengo una pregunta cual es la diferencia entre var y let las dos se pueden colcoar en variables no pero mi pregunta es cuando se coloca var y cuando se coloca let
VAR
var es declarada dentro de una función ese es solamente su alcance y al tratar de invocarla fuera de su ámbito generará un errorLET
Escenario 1
Las variables que se declaran con el identificador let no son alcanzadas por el objeto global window de este modo
let nombre = 'beta'
console.log(window.nombre)
Dará como resultado el siguiente error:
> undefined
Mientras que si haces la misma declaración de arriba pero esta vez con el identificador var si será alcanzada por el objeto global window
var nombre = 'beta'
console.log(window.nombre)
Dará como resultado lo siguiente
> beta
Escenario 2
Ahora por ejemplo dentro de una función ambas variables son alcanzables, es decir podremos obtener los valores de ambas, mira el siguiente ejemplo
function saludos(){
let nombre1 = 'alfa'
var nombre2 = 'beta'
return nombre1+nombre2
}
console.log(saludos())
Lo anterior dará como resultado lo siguiente
> alfabeta
Escenario 3
Ahora revisemos el caso específico de let que estará disponible dentro de un bloque lo cual podemos identificar por los símbolos de {}
if(1 === 1){
let nombre = "beta"
console.log(nombre) //imprime beta
}
console.log(nombre) //imprime un error como el siguiente
> "ReferenceError: nombre is not defined
El anterior error se debe a que nombre solo existe dentro del alcance de bloque del condicional if
Escenario 4
Ahora si replicamos el mismo ejercicio anterior pero sustituyendo a let por el uso de var obtendremos el siguiente comportamiento
if(1 === 1){
var nombre = "beta"
console.log(nombre) //imprime beta
}
console.log(nombre) // también imprime beta
Espero te sirva la explicación
En sencillas palabras se usa la variable "LET" cuando la vas a utilizar solamente en un bloque de codigo o instruccion por que su alcance va ser limitado. es por así decirlo llega el garbage collector y limpia todo el espacio de memoria que no utilices. Ejemplo...
let a = 3;
let b = 3;
if (a == b) {
console.log("A es igual a B")
let c = 5;
console.log("el valor de c es igual a ",c) //Retorna el valor de c
}
console.log("devuelbe el valor de c ",c) //Aqui genera un error por que no esta dentro del bloque de codigo
Pero si en cambio cambias el tipo de variable a "VAR" no te genera error por que la declaras como una variable global que la vas a utilizar en todo el método... por ejemplo...
let a = 3;
let b = 3;
if (a == b) {
console.log("A es igual a B")
var c = 5;
console.log("el valor de c es igual a ",c) //Retorna el valor de c
}
console.log("devuelbe el valor de c ",c) //devuelve correctamente el valor de c
VAR
var es declarada dentro de una función ese es solamente su alcance y al tratar de invocarla fuera de su ámbito generará un errorLET
Escenario 1
Las variables que se declaran con el identificador let no son alcanzadas por el objeto global window de este modo
let nombre = 'beta'
console.log(window.nombre)
Dará como resultado el siguiente error:
> undefined
Mientras que si haces la misma declaración de arriba pero esta vez con el identificador var si será alcanzada por el objeto global window
var nombre = 'beta'
console.log(window.nombre)
Dará como resultado lo siguiente
> beta
Escenario 2
Ahora por ejemplo dentro de una función ambas variables son alcanzables, es decir podremos obtener los valores de ambas, mira el siguiente ejemplo
function saludos(){
let nombre1 = 'alfa'
var nombre2 = 'beta'
return nombre1+nombre2
}
console.log(saludos())
Lo anterior dará como resultado lo siguiente
> alfabeta
Escenario 3
Ahora revisemos el caso específico de let que estará disponible dentro de un bloque lo cual podemos identificar por los símbolos de {}
if(1 === 1){
let nombre = "beta"
console.log(nombre) //imprime beta
}
console.log(nombre) //imprime un error como el siguiente
> "ReferenceError: nombre is not defined
El anterior error se debe a que nombre solo existe dentro del alcance de bloque del condicional if
Escenario 4
Ahora si replicamos el mismo ejercicio anterior pero sustituyendo a let por el uso de var obtendremos el siguiente comportamiento
if(1 === 1){
var nombre = "beta"
console.log(nombre) //imprime beta
}
console.log(nombre) // también imprime beta
Espero te sirva la explicación
En sencillas palabras se usa la variable "LET" cuando la vas a utilizar solamente en un bloque de codigo o instruccion por que su alcance va ser limitado. es por así decirlo llega el garbage collector y limpia todo el espacio de memoria que no utilices. Ejemplo...
let a = 3;
let b = 3;
if (a == b) {
console.log("A es igual a B")
let c = 5;
console.log("el valor de c es igual a ",c) //Retorna el valor de c
}
console.log("devuelbe el valor de c ",c) //Aqui genera un error por que no esta dentro del bloque de codigo
Pero si en cambio cambias el tipo de variable a "VAR" no te genera error por que la declaras como una variable global que la vas a utilizar en todo el método... por ejemplo...
let a = 3;
let b = 3;
if (a == b) {
console.log("A es igual a B")
var c = 5;
console.log("el valor de c es igual a ",c) //Retorna el valor de c
}
console.log("devuelbe el valor de c ",c) //devuelve correctamente el valor de c
VAR
var es declarada dentro de una función ese es solamente su alcance y al tratar de invocarla fuera de su ámbito generará un errorLET
Escenario 1
Las variables que se declaran con el identificador let no son alcanzadas por el objeto global window de este modo
let nombre = 'beta'
console.log(window.nombre)
Dará como resultado el siguiente error:
> undefined
Mientras que si haces la misma declaración de arriba pero esta vez con el identificador var si será alcanzada por el objeto global window
var nombre = 'beta'
console.log(window.nombre)
Dará como resultado lo siguiente
> beta
Escenario 2
Ahora por ejemplo dentro de una función ambas variables son alcanzables, es decir podremos obtener los valores de ambas, mira el siguiente ejemplo
function saludos(){
let nombre1 = 'alfa'
var nombre2 = 'beta'
return nombre1+nombre2
}
console.log(saludos())
Lo anterior dará como resultado lo siguiente
> alfabeta
Escenario 3
Ahora revisemos el caso específico de let que estará disponible dentro de un bloque lo cual podemos identificar por los símbolos de {}
if(1 === 1){
let nombre = "beta"
console.log(nombre) //imprime beta
}
console.log(nombre) //imprime un error como el siguiente
> "ReferenceError: nombre is not defined
El anterior error se debe a que nombre solo existe dentro del alcance de bloque del condicional if
Escenario 4
Ahora si replicamos el mismo ejercicio anterior pero sustituyendo a let por el uso de var obtendremos el siguiente comportamiento
if(1 === 1){
var nombre = "beta"
console.log(nombre) //imprime beta
}
console.log(nombre) // también imprime beta
Espero te sirva la explicación
En sencillas palabras se usa la variable "LET" cuando la vas a utilizar solamente en un bloque de codigo o instruccion por que su alcance va ser limitado. es por así decirlo llega el garbage collector y limpia todo el espacio de memoria que no utilices. Ejemplo...
let a = 3;
let b = 3;
if (a == b) {
console.log("A es igual a B")
let c = 5;
console.log("el valor de c es igual a ",c) //Retorna el valor de c
}
console.log("devuelbe el valor de c ",c) //Aqui genera un error por que no esta dentro del bloque de codigo
Pero si en cambio cambias el tipo de variable a "VAR" no te genera error por que la declaras como una variable global que la vas a utilizar en todo el método... por ejemplo...
let a = 3;
let b = 3;
if (a == b) {
console.log("A es igual a B")
var c = 5;
console.log("el valor de c es igual a ",c) //Retorna el valor de c
}
console.log("devuelbe el valor de c ",c) //devuelve correctamente el valor de c