Было много путаницы по поводу использования let и var в Javascript. Итак, вот разница, где вы теперь легко можете решить, что использовать, где и когда.

Описание

let дает вам право объявлять переменные, область действия которых ограничена блоком, в отличие от оператора выражения var.

var - это скорее ключевое слово, которое определяет переменную глобально, независимо от области действия блока.

Теперь позвольте мне показать вам, чем они отличаются.

Глобальный объект окна

Даже если переменная let определена так же, как переменная var глобально, переменная let не будет добавлена ​​к глобальному объекту окна.

См. Пример ниже -

var varVariable = “this is a var variable”;
let letVariable = “this is a let variable”;

Скажем, здесь объявлены две переменные. давайте посмотрим, какой результат это на самом деле дает.

console.log(window.varVariable); //this is a var variable
console.log(window.letVariable); //undefined

Таким образом, переменные let не могут быть доступны в объекте окна, потому что они не могут быть доступны глобально.

Блокировать

Переменные let обычно используются, когда эти переменные используются ограниченно. Скажем, в циклах for, в циклах while или внутри области условий if и т. Д. В принципе, везде, где область действия переменной должна быть ограничена.

Например: -

Для цикла с использованием переменной let : -

for(let i=0;i<10;i++){
console.log(i); //i is visible thus is logged in the console as 0,1,2,....,9
}
console.log(i); //throws an error as "i is not defined" because i is not visible

Для цикла с использованием var переменной : -

for(var i=0; i<10; i++){
console.log(i); //i is visible thus is logged in the console as 0,1,2,....,9
}
console.log(i); //i is visible here too. thus is logged as 10.

Таким образом, как вы можете видеть, переменная var регистрируется как 10 и вне цикла for.

Примечание. Он зарегистрировал его как 10, потому что цикл for завершается после проверки увеличенного значения i.

Повторное объявление

Переменные let нельзя повторно объявить, а переменную var можно повторно объявить в той же области.

Предположим, мы используем строгий режим

'use strict';
var temp = "this is a temp variable";
var temp = "this is a second temp variable"; //replaced easily

Мы не можем сделать то же самое с let-

'use strict';
let temp = "this is a temp variable";
let temp = "this is a second temp variable" //SyntaxError: temp is already declared

Функция

Переменные let и var работают одинаково при использовании в функциональном блоке.

function aSampleFunction(){
let letVariable = "Hey! What's up? I am let variable.";
var varVariable = "Hey! How are you? I am var variable.";
console.log(letVariable); //Hey! What's up? I am let variable.
console.log(varVariable); //Hey! How are you? I am var variable.
}

С помощью приведенного выше объяснения я могу с уверенностью сказать, что теперь вы имеете полное представление о разнице между переменными let и var.

Спасибо за чтение.