JavaScript let Vs var (с примерами)

В этом руководстве вы узнаете о разнице между 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 будет иметь глобальную область видимости, и к ней можно будет получить доступ в любом месте программы.

Интересные статьи...