variables js
by evgkch
JavaScript
// Инициализация
var a = 'a created';
const b = 'b created';
let c = 'c created';
// Переопределение
a = 'a overloaded';
// b = 'b overloaded'; // эта константа, переопределение выдаст ошибку с ругательствами
c = 'c overloaded';
console.log(a);
console.log(b);
console.log(c);
// a overloaded
// b created
// c overloaded
// Открываем новый блок
{
var a = 'new a created';
const b = 'new b created';
let c = 'new c created';
// Смотрим на значения внутри блока
console.log(a);
console.log(b);
console.log(c);
// new a created
// new b created
// new c created
}
// Снаружи поменялось значение переменной 'a',
// созданной через var, потому что ее область видимости в пределах
// модуля глобальна. Переменные, созданные через const и let
// видны только в пределах блока.
console.log(a);
console.log(b);
console.log(c);
// new a created
// b created
// c overloaded
// Переменные let и const не могут "подниматься вверх" внутри блока.
// Тем не менее, они могут "опускаться вниз. Все как в жизни
{
const b = 'double new b created';
let c = 'double new c created';
// Блок внутри блока - это как сон во сне
{
console.log(b);
console.log(c);
// new b created
// new c created
}
}