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
: