Чтобы подробно объяснить и рассеять дым вокруг темы, будет сделано небольшое погружение в значение и историю переменных в отношении развития/роста JavaScript на протяжении многих лет.
Переменные: они действуют как контейнеры для значений. Это «просто названные» хранилища для данных. Можно определить переменную JavaScript как имя, присвоенное ячейке памяти, используемой для хранения значений.
Вы можете принять переменную как контейнер или поле, которое используется для хранения значений.

‹A› ТИПЫ ПЕРЕМЕННЫХ
Это глобальные переменные и локальные переменные.
// Глобальные переменные
Переменные, которые объявлены вне блока или функции, доступны в программе из любого места, следовательно, не привязаны к своим значениям.
let age = 20;
function check(){
if(age >= 18)
return 'welcome to the party';
else
return 'Not of age';
}
console.log(check());
console.log(age);
/* age is declared outside the function
so it can be accessed from anywhere in the program.*/
// Локальные переменные
Переменные объявляются и доступны только внутри блока или функции. Они также привязаны к своему значению внутри блока [2]
function check(){
let age = 20;
if(age >= 20)
return 'Welcome to the party';
else
return 'Keep it moving boy';
}
console.log(check());
//age is a local variable and can only be accessed within this function
В старом ECMAScript 2009, также известном как ES5, разработчики объявляли переменные с помощью ключевого слова var или без каких-либо ключевых слов, но в новых версиях ES6 let и const были введены;
‹b› Разница между let, const и var.

// Инициализация
Во время инициализации var и let и инициализируются без присвоения им значения, а const не может
var apple; let banana; const orange; //this will give an error hence a value must be given
// Переназначение
const нельзя переназначить другому значению, но let и var можно переназначить
var colour = "blue"; colour = "yellow"; //now age is 5 let colour = "blue"; colour = "yellow"; // colour have been reassigned to yellow const colour = "blue";; colour = "yellow" /* this WILL NOT work or be reassigned and will throw an error */
// Повторное объявление
С помощью var переменные могут быть переобъявлены, но let и const не могут быть переобъявлены.
var country = "Nigeria"; var country = "Ghana" //this will be redeclared let country = "Nigeria"; let country = "Ghana" //redeclaration is not possible but can be reassigned const country = "Nigeria"; const country = "Ghana"; //redeclaration is not possible cannot be reassigned
// Заблокировано
Это связано с доступом к переменной внутри и вне набора фигурных скобок. Доступ к let и const можно получить внутри фигурных скобок (блок), где он был объявлен, и его дочерний элемент, но к ним нельзя получить доступ за пределами блока, в отличие от var, который можно обновить и повторно объявить в пределах его области действия [3].
if(true){
let b =30;
}
console.log(b); /* gives the result b is not defined; cause it cannot be accessed
outside the braces */
if(true){
const b =30;
}
console.log(b); /* gives the result b is not defined; cause it cannot be accessed
outside the braces */
if(true){
var b = 30;
}
console.log(b); //will give 30, hence it can be accessed outside the braces
Благодаря статье вы сможете лучше понять разницу между let, var и const. Спасибо за прочтение. Оставайтесь закодированными