JavaScript пусть
Ключевое let
слово было введено в
ES6 (2015) .
Переменные, определенные с let
помощью, не могут быть повторно объявлены.
Переменные, определенные с помощью let
, должны быть объявлены перед использованием.
Переменные, определенные с помощью let
, имеют блочную область.
Не может быть повторно объявлен
Переменные, определенные с let
помощью , не могут быть повторно объявлены .
Вы не можете случайно повторно объявить переменную.
С let
вами нельзя так:
Пример
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
С var
вами можно:
Пример
var x = "John Doe";
var x = 0;
Область блока
До ES6 (2015) у JavaScript были только Global Scope и Function Scope .
ES6 представил два важных новых ключевых слова JavaScript: let
и const
.
Эти два ключевых слова обеспечивают область действия блока в JavaScript.
К переменным, объявленным внутри блока { }, нельзя получить доступ снаружи блока:
Пример
{
let x = 2;
}
// x can NOT be used here
Переменные, объявленные с помощью var
ключевого слова, НЕ могут иметь область действия блока.
К переменным, объявленным внутри блока { }, можно получить доступ снаружи блока.
Пример
{
var x = 2;
}
// x CAN be used here
Повторное объявление переменных
Повторное объявление переменной с помощью var
ключевого слова может создать проблемы.
Повторное объявление переменной внутри блока также приведет к повторному объявлению переменной вне блока:
Пример
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
Повторное объявление переменной с помощью let
ключевого слова может решить эту проблему.
Повторное объявление переменной внутри блока не приведет к повторному объявлению переменной вне блока:
Пример
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 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
разрешено в любом месте программы:
Пример
var x = 2;
// Now x is 2
var x = 3;
// Now x is 3
С let
повторным объявлением переменной в том же блоке НЕ допускается:
Пример
var x = 2; // Allowed
let x = 3; // Not allowed
{
let x = 2; // Allowed
let x = 3 // Not allowed
}
{
let x = 2; // Allowed
var x = 3 // Not allowed
}
Повторное объявление переменной с let
, в другом блоке, разрешено:
Пример
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
Пусть подъем
Переменные, определенные с помощью var
, поднимаются вверх и могут быть инициализированы в любое время.
Значение: вы можете использовать переменную до ее объявления:
Пример
Хорошо:
carName = "Volvo";
var carName;
Если вы хотите узнать больше о подъеме, изучите главу « Подъем JavaScript» .
Переменные, определенные с помощью let
, также поднимаются наверх блока, но не инициализируются.
Значение: использование let
переменной до ее объявления приведет к
ReferenceError
:
Пример
carName = "Saab";
let carName = "Volvo";