gramática
Dejar variable1 = valor1
parámetro
variable1
El nombre de la variable para declarar.
valor1
El valor inicial asignado a la variable.
Observación
Use una declaración de Let para declarar una variable cuyo alcance se limita al bloque que lo declara. Puede asignar valores a variables al declarar variables, o puede asignar valores a variables más adelante en el script.
Las variables declaradas que se usan no se pueden usar antes de la declaración, de lo contrario se causará un error.
Si su variable no se inicializa en la instrucción LET, se le asignará automáticamente un valor de JavaScript indefinido.
Ejemplo:
var l = 10; {let l = 2; // en este punto, l = 2.} // En este punto, l = 10.// formas adicionales de declarar una variable usando el índice let.let; let name = "Thomas Jefferson"; vamos a la respuesta = 42, contador, numpages = 10; dejar myArray = new array ();Alcance de nivel de bloque
for (var i = 0; i <10; i ++) {} console.log (i); // 10FOR (LET J = 0; J <10; j ++) {} console.log (j); // "referenceError: J no está definidoSin promoción variable
console.log (a); // Salida UndefinedConsole.log (b); // Error referenceErrorconSole.log (c); // Error referenceErrorVar A = 2; Sea B = 2;
Preste atención a la diferencia entre unrendador indefinido y reference
Zona muerta temporal (TDZ)
Mientras ingrese al alcance actual de nivel de bloque, las variables utilizadas ya existen, pero son zonas muertas antes de la declaración y no se pueden operar.
Nota: TypeOf ya no es una operación 100% segura
typeof x; // referenceerRortypeOf y // Undefinedlet x;
No se permiten declaraciones repetidas
Sea x = 1; Sea x; // "SyntaxError: el identificador 'x' ya se ha declarado y = 2; var y = 3; // y = 3
Alcance de nivel de bloque
// escritura de funciones anónimas (function () {var tmp = ...; ...} ()); // escrito de alcance de nivel bloque {let tmp = ...; ...}El modo estricto de ES5 estipula que las funciones solo se pueden declarar dentro del alcance y la función de nivel superior, y las declaraciones en otras situaciones (como los bloqueos de código, los bloques de código de bucle) informarán errores.
// es5'use strict '; if (true) {function f () {} // Informe un error}Dado que ES6 introduce un alcance de nivel de bloque, esta situación puede entenderse como una función declarada dentro de un alcance de nivel de bloque, por lo que no se informa ningún error, pero no pueden faltar los aparatos que componen el bloque.
// Informar un error 'use estrict'; if (true) función f () {}La variable global declarada ya no es una propiedad de la ventana
"Use estricto"; var a = 1; console.log (window.a) // 1let b = 1; console.log (window.b) // indefinido