MEJOR SITIO PARA DESARROLLADORES WEB

JS Tutorial

JS HOGAR JS Introducción JS A donde JS Producción JS Declaraciones JS Sintaxis JS Comentarios JS Variables JS Let JS Const JS Operadores JS Aritmética JS Asignación JS Tipos de datos JS Funciones JS Objetos JS Eventos JS Cadenas JS Métodos de cadena JS Búsqueda de cadenas JS Plantillas de cadenas JS Números JS Métodos numéricos JS Matrices JS Métodos de matriz JS Clasificación de matrices JS Iteración de matriz JS Array Const JS Fechas JS Formatos de fecha JS Métodos de obtención de fecha JS Métodos de configuración de fechas JS Math JS aleatorio JS Booleanos JS Comparaciones JS If Else JS Switch JS Bucle For JS Bucle For In JS Bucle For Of JS Bucle While JS Break JS Iterables JS Conjuntos JS Maps JS Tipo de JS Conversión de tipo JS Bitwise JS RegExp JS Errores JS Alcance JS Hoisting JS Modo estricto JS this palabra clave JS Función de flecha JS Clases JS Módulos JS JSON JS Depuración JS Guía de estilo JS Mejores prácticas JS Errores JS Rendimiento JS Palabras reservadas

JS Versiones

JS Versiones JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS 2019 JS 2020 JS 2021/2022 JS IE / Edge JS Historia

JS Objetos

Objeto Definiciones Objeto Propiedades Objeto Métodos Objeto Display Objeto Accesorios Objeto Constructores Objeto Prototipos Objeto Iterables Objeto Conjuntos Objeto Mapas Objeto Referencia

JS Funciones

Función Definiciones Función Parámetros Función Invocación Función Llamar Función Aplicar Función Unir Función Cierres

JS Clases

Clase Introducción Clase Herencia Clase Estático

JS Asíncrono

JS Devoluciones de llamada JS Asincrónico JS Promesas JS Async/Await

JS HTML DOM

DOM Introducción DOM Métodos DOM Documento DOM Elementos DOM HTML DOM Formularios DOM CSS DOM Animaciones DOM Eventos DOM Oyente de eventos DOM Navegación DOM Nodos DOM Colecciones DOM Listas de nodos

JS Navegador BOM

JS Ventana JS Pantalla JS Ubicación JS Historia JS Navegador JS Alerta emergente JS Momento JS Cookies

JS Web APIs

Web API Introducción API de formularios web API de historial web API de almacenamiento web API de trabajador web API de recuperación web API de geolocalización web

JS AJAX

AJAX Introducción AJAX XMLHttp AJAX Pedido AJAX Respuesta AJAX XML Archivo AJAX PHP AJAX ASP AJAX Base de datos AJAX Aplicaciones AJAX Ejemplos

JS JSON

JSON Introducción JSON Sintaxis JSON vs XML JSON Tipos de datos JSON Analizar JSON Stringificar JSON Objetos JSON Matrices JSON Servidor JSON PHP JSON HTML JSON JSONP

JS vs jQuery

jQuery Selectores jQuery HTML jQuery CSS jQuery DOM

JS Gráficos

JS Gráficos JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

JS Ejemplos

JS Ejemplos JS HTML DOM JS HTML Input JS HTML Objetos JS HTML Eventos JS Navegador JS Editor JS Ejercicios JS Prueba JS Bootcamp JS Certificado

JS Referencias

JavaScript Objetos HTML DOM Objetos

JavaScript. W3Schools en español. Lecciones para principiantes

Ua En De Fr

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:

Ejemplo

var x = 10;
// Aquí x es 10

{
var x = 2;
// Here x is 2
}

// Aquí x es 2
Try it Yourself »

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:

Ejemplo

let x = 10;
// Aquí x es 10

{
let x = 2;
// Aquí x es 2
}

// Aquí x es 10
Try it Yourself »

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:

Ejemplo

var x = 2;
// ahora x es 2

var x = 3;
// ahora x es 3
Try it Yourself »

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:

Ejemplo

This is OK:

carName = "Volvo";
var carName;
Try it Yourself »

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:

Ejemplo

carName = "Saab";
let carName = "Volvo";
Try it Yourself »


Comentarios