JavaScript La palabra clave let
La palabra clave let
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 alcance de bloque.
No se puede volver a declarar
Las variables definidas con let
no se pueden redeclarar.
No se puede redeclarar accidentalmente una variable.
Con let
no puedes hacer esto:
Ejemplo
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' ya ha sido declarado
Con var
puedes:
Ejemplo
var x = "John Doe";
var x = 0;
Alcance del bloque
Antes de ES6 (2015), JavaScript solo tenía alcance global y alcance de función.
ES6 introdujo dos nuevas palabras clave importantes de JavaScript: let
y const
.
Estas dos palabras clave proporcionan Alcance del bloque en JavaScript.
No se puede acceder a las variables declaradas dentro de un bloque { } desde fuera del bloque:
Ejemplo
{
let x = 2;
}
// x NO se puede utilizar aquí
Las variables declaradas con la palabra clave var
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 PUEDE usarse aquí
Redeclaración de variables
Redeclarar una variable usando la palabra clave var
puede generar problemas.
Redeclarar una variable dentro de un bloque también redeclarará la variable fuera del bloque:
Redeclarar una variable usando la palabra clave let
puede resolver este problema.
Redeclarar una variable dentro de un bloque no redeclarará la variable fuera del bloque:
Soporte del navegador
La palabra clave let
no es totalmente compatible con Internet Explorer 11 o versiones anteriores.
La siguiente tabla define las primeras versiones del navegador con soporte completo para la palabra clave let
:
Chrome 49 | Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
Redeclaración
Se permite redeclarar una variable JavaScript con var
en cualquier parte de un programa:
Con let
, NO se permite redeclarar una variable en el mismo bloque:
Ejemplo
var x = 2; // Permitido
let x = 3; // No permitido
{
let x = 2; // Permitido
let x = 3 // No permitido
}
{
let x = 2; // Permitido
var x = 3 // No permitido
}
Redeclarar una variable con let
, en otro bloque, ESTÁ permitido:
Ejemplo
let x = 2; // Permitido
{
let x = 3; // Permitido
}
{
let x = 4; // Permitido
}
Try it Yourself »
Dejar Izar
Las variables definidas con var
se elevan a la parte superior y se pueden inicializar en cualquier momento.
Significado: Puede utilizar la variable antes de declararla:
Si quieres aprender más sobre izado, estudia el capítulo Elevación con 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 variable let
antes de declararla dará como resultado una ReferenceError
: