Permitir JavaScript
La let
palabra clave se introdujo en
ES6 (2015) .
Las variables definidas con let
no se pueden volver a declarar.
Las variables definidas con let
deben declararse antes de su uso.
Las variables definidas con let
tienen ámbito de bloque.
No se puede volver a declarar
Las variables definidas con let
no se pueden volver a declarar .
No puede volver a declarar accidentalmente una variable.
Con let
usted no puede hacer esto:
Ejemplo
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
Con var
usted puede:
Ejemplo
var x = "John Doe";
var x = 0;
Ámbito de bloque
Antes de ES6 (2015), JavaScript solo tenía Global Scope y Function Scope .
ES6 introdujo dos nuevas e importantes palabras clave de JavaScript: let
y const
.
Estas dos palabras clave proporcionan Block Scope en JavaScript.
No se puede acceder a las variables declaradas dentro de un bloque { } desde fuera del bloque:
Ejemplo
{
let x = 2;
}
// x can NOT be used here
Las variables declaradas con la var
palabra clave NO pueden tener alcance de bloque.
Se puede acceder a las variables declaradas dentro de un bloque { } desde fuera del bloque.
Ejemplo
{
var x = 2;
}
// x CAN be used here
Redeclaración de variables
Volver a declarar una variable utilizando la var
palabra clave puede plantear problemas.
Volver a declarar una variable dentro de un bloque también volverá a declarar la variable fuera del bloque:
Ejemplo
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
Redeclarar una variable usando la let
palabra clave puede resolver este problema.
Volver a declarar una variable dentro de un bloque no volverá a declarar la variable fuera del bloque:
Ejemplo
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
Compatibilidad con navegador
La let
palabra clave no es totalmente compatible con Internet Explorer 11 o anterior.
La siguiente tabla define las primeras versiones del navegador con soporte completo para la let
palabra clave:
Chrome 49 | Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
redeclarando
Se permite volver a declarar una variable de JavaScript var
en cualquier parte de un programa:
Ejemplo
var x = 2;
// Now x is 2
var x = 3;
// Now x is 3
Con let
, NO se permite redeclarar una variable en el mismo bloque:
Ejemplo
var x = 2; // Allowed
let x = 3; // Not allowed
{
let x = 2; // Allowed
let x = 3 // Not allowed
}
{
let x = 2; // Allowed
var x = 3 // Not allowed
}
Redeclarar una variable con let
, en otro bloque, ES permitido:
Ejemplo
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
dejar izar
Las variables definidas con var
se elevan a la parte superior y se pueden inicializar en cualquier momento.
Significado: puede usar la variable antes de que se declare:
Ejemplo
Esto esta bien:
carName = "Volvo";
var carName;
Si desea obtener más información sobre la elevación, estudie el capítulo Elevación de JavaScript .
Las variables definidas con let
también se elevan a la parte superior del bloque, pero no se inicializan.
Significado: el uso de una let
variable antes de declararla dará como resultado
ReferenceError
:
Ejemplo
carName = "Saab";
let carName = "Volvo";