JavaScript Ключевое слово Let
Ключевое слово let было введено в ES6 (2015).
Переменные, определенные с помощью let нельзя повторно объявить.
Переменные, определенные с помощью let должны быть объявлены перед использованием.
Переменные, определенные с помощью let имеют область действия блока.
Невозможно повторно объявить
Переменные, определенные с помощью let не могут быть объявлены повторно.
Вы не можете случайно повторно объявить переменную.
С помощью let вы не сможете этого сделать:
Пример
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' уже было объявлено
С помощью var вы можете:
Пример
var x = "John Doe";
var x = 0;
Область действия блока
До ES6 (2015) в JavaScript были только Global Scope (Глобальная область) и Function Scope (область действия).
ES6 представил два важных новых ключевых слова JavaScript: let и const.
Эти два ключевых слова обеспечивают Block Scope (область действия блока) в JavaScript.
К переменным, объявленным внутри блока { }, нельзя получить доступ извне блока:
Пример
{
let x = 2;
}
// x НЕ может быть использован здесь
Переменные, объявленные с помощью ключевого слова var, НЕ могут иметь область действия блока.
Переменные, объявленные внутри блока { }, могут быть доступны вне блока.
Пример
{
var x = 2;
}
// x МОЖНО использовать здесь
Повторное объявление переменных
Повторное объявление переменной с помощью ключевого слова var может вызвать проблемы.
Повторное объявление переменной внутри блока также приведет к повторному объявлению переменной вне блока:
Пример
var x = 10;
// Здесь x равно 10
{
var x = 2;
// Здесь x равно 2
}
// Здесь x равно 2
Попробуйте сами »
Повторное объявление переменной с помощью ключевого слова let может решить эту проблему.
Повторное объявление переменной внутри блока не приведет к повторному объявлению переменной вне блока:
Пример
let x = 10;
// Здесь x равно 10
{
let x = 2;
// Здесь x равно 2
}
// Здесь x равно 10
Попробуйте сами »
Поддержка браузерами
Ключевое слово let не полностью поддерживается в Internet Explorer 11 или более ранней версии.
В следующей таблице определены первые версии браузера с полной поддержкой ключевого слова let:
| Chrome 49 | Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
| Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
Повторное объявление
Повторное объявление переменной JavaScript с помощью var разрешено в любом месте программы:
С помощью let повторное объявление переменной в том же блоке ЗАПРЕЩЕНО:
Пример
var x = 2; // Разрешено
let x = 3; // Не разрешено
{
let x = 2; // Разрешено
let x = 3 // Не разрешено
}
{
let x = 2; // Разрешено
var x = 3 // Не разрешено
}
Повторное объявление переменной с помощью let в другом блоке РАЗРЕШЕНО:
Пример
let x = 2; // Разрешено
{
let x = 3; // Разрешено
}
{
let x = 4; // Разрешено
}
Попробуйте сами »
Подъём (хостинг) Let
Переменные, определённые с помощью var, поднимаются вверх и могут быть инициализированы в любое время.
Важно: вы можете использовать переменную до её объявления:
Если вы хотите узнать больше о подъёме, изучите главу JavaScript Подъём.
Переменные, определенные с помощью let также поднимаются в верхнюю часть блока, но не инициализируются.
Важно: использование переменной let перед её объявлением приведет к ошибке ReferenceError:

