В этом руководстве вы узнаете о разнице между let и var в JavaScript с помощью примеров.
В JavaScript для объявления переменных используются как ключевые слова, так varи let.
letКлючевое слово было введено в более поздней версии JavaScript , известной как ES6 (ES2015) . И это предпочтительный способ объявления переменных.
JavaScript let Vs var
Вот обзор различий между letи var.
| позволять | вар |
|---|---|
| let имеет блочную область видимости. | var - это функция в области видимости. |
| let не позволяет переобъявлять переменные. | var позволяет повторно объявлять переменные. |
| Подъем не происходит. | Подъем происходит в var. |
JavaScript let Vs var в локальной области
var - это функция в области видимости
Переменная, объявленная внутри функции, varможет использоваться в любом месте функции. Например,
// program to print text // variable a cannot be used here function greet() ( // variable a can be used here var a = 'hello'; console.log(a); ) // variable a cannot be used here greet(); // hello
В приведенной выше программе переменная a объявлена с помощью var. Переменную a можно использовать где угодно внутри функции greet.
пусть блокируется
К переменной, объявленной с помощью, letможно получить доступ только внутри блока кода. Например,
// program to print the text // variable a cannot be used here function greet() ( let a = 'hello'; // variable b cannot be used here if(a == 'hello')( // variable b can be used here let b = 'world'; console.log(a + ' ' + b); ) // variable b cannot be used here console.log(a + ' ' + b); // error ) // variable a cannot be used here greet();
Вывод
привет мир Uncaught ReferenceError: b не определен
В приведенной выше программе переменная a объявлена внутри функции, и к ней можно получить доступ из любого места внутри функции (a становится областью действия функции).
Однако переменная b объявляется внутри ifоператора блока. b будет ограничен блоком, и к нему можно будет получить доступ только внутри ifблока.
Следовательно, когда вы пытаетесь получить доступ к b вне ifблока, возникает ошибка (как показано выше в программе).
Примечание . Переменные, объявленные внутри функции, будут иметь область видимости как для, так varи для let.
let не позволяет повторно объявлять переменные
1. Переменную, объявленную с помощью, varможно снова объявить заново. Например,
var a = 5; // 5 var a = 3; // 3
Переменная, объявленная с letпомощью, не может быть повторно объявлена в том же блоке или той же области. Например,
let a = 5; let a = 3; // error
Вывод
Uncaught SyntaxError: идентификатор 'a' уже объявлен
2. Повторное объявление переменной varв другой области действия или в другом блоке также изменяет значение внешней переменной. Например,
var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3
Повторное объявление переменной letв другой области или блоке рассматривает эту переменную как другую переменную. И значение переменной снаружи не меняется. Например,
let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5
3. Когда переменная, объявленная с помощью var, используется в цикле, значение этой переменной изменяется. Например,
var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3
В приведенной выше программе forцикл повторно объявляет переменную a. Следовательно, в конце значение aизменяется на 3 .
Когда переменная, объявленная с помощью let , используется в цикле, значение переменной не изменяется. Например,
let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2
В приведенной выше программе forцикл обрабатывает переменную a как переменную, отличную от указанной выше. И область этой переменной находится только внутри forцикла. Следовательно, значение переменной a в конце остается равным 2 .
let не допускает подъема
Переменные, объявленные с помощью var, поднимаются в верхнюю часть области действия программы. Например,
console.log(a); var a; // undefined (not an error)
Ключевое слово letне разрешает подъем. Например,
console.log(a); let a; // Uncaught ReferenceError: a is not defined
Если вы хотите узнать больше о подъеме, посетите JavaScript подъемник.
let и var Поддержка браузера
Большинство современных браузеров поддерживают использование let. Однако некоторые браузеры не поддерживают его полностью let.
Чтобы узнать больше, посетите JavaScript let browser support.
Примечание . В случае глобальной области видимости оба varи letбудут вести себя одинаково. Например,
var a = 5; // 5
Переменная a будет иметь глобальную область видимости, и к ней можно будет получить доступ в любом месте программы.
let a = 5; // 5
Переменная a будет иметь глобальную область видимости, и к ней можно будет получить доступ в любом месте программы.








