грамматика
Пусть переменная1 = значение1
параметр
переменная1
Имя переменной для объявления.
значение1
Начальное значение, назначенное переменной.
Примечание
Используйте оператор let, чтобы объявить переменную, сфера которой ограничена блоком, который объявляет ее. Вы можете присвоить значения переменным при объявлении переменных, или вы можете присвоить значения переменным позже в скрипте.
Переменные, объявленные с использованием let, не могут быть использованы до объявления, в противном случае будет вызвана ошибка.
Если ваша переменная не инициализирована в операторе let, ей автоматически будет назначено значение JavaScript.
Пример:
var l = 10; {let l = 2; // На данный момент, l = 2.} // На данный момент L = 10.// Дополнительные способы объявить переменную, используя let.let index; let name = "Thomas Jefferson"; пусть ответ = 42, счетчик, numpages = 10; let myarray = new Array ();Объем уровня блока
for (var i = 0; i <10; i ++) {} console.log (i); // 10for (let j = 0; j <10; j ++) {} console.log (j); // "referenceerror: j не определеноНет переменной продвижения
console.log (a); // Выход UndefinedConsole.log (b); // error referenceErrorConsole.log (c); // Ошибка ссылки на эпоху A = 2; пусть b = 2;
Обратите внимание на разницу между неопределенным и ссылочным обертором
Временная мертвая зона (TDZ)
Пока вы входите в текущую область на уровне блока, используемые переменные уже существуют, но они являются мертвыми зонами перед объявлением и не могут быть эксплуатированы.
Примечание: TypeOF больше не является 100% безопасной операцией
тип x; // referenceerRortypeof y // undefinedlet x;
Повторные заявления не допускаются
Пусть x = 1; пусть x; // "Синтаксисратор: идентификатор 'x' уже был объявлен на y = 2; var y = 3; // y = 3
Объем уровня блока
// anonymous function witch (function () {var tmp = ...; ...} ()); // rewort upport {let tmp = ...; ...}Строгий режим ES5 предусматривает, что функции могут быть объявлены только в рамках и функции верхнего уровня, а объявления в других ситуациях (например, если кодовые блоки, блоки кода цикла) сообщают об ошибках.
// es5'use strict '; if (true) {function f () {} // Сообщать об ошибке}Поскольку ES6 вводит область на уровне блока, эту ситуацию можно понимать как функция, объявленная в рамках на уровне блока, поэтому ошибка не сообщается, но скобки, которые составляют блок, не могут отсутствовать.
// Сообщать об ошибке «Использовать строго»; if (true) function f () {}Объявленная глобальная переменная больше не является свойством окна
«Использовать строгое»; var a = 1; console.log (window.a) // 1let b = 1; console.log (window.b) // Не определено