let, const і var — це інструменти, які використовуються для оголошення змінних у JavaScript
Короткий огляд кожного з них допоможе зрозуміти їх відмінності
let
Змінні, оголошені за допомогою let, мають блокову область видимості, що означає, що вони доступні лише в межах блоку, в якому вони були оголошені. Змінні, оголошені за допомогою let, також піднімаються (hoisted), але важливо зауважити, що вони не ініціалізуються, поки не будуть оголошені. Змінні, оголошені за допомогою let, можуть бути перепризначені. Приклад нижче:
// Let
function letExample() {
console.log(age); // ReferenceError (Оскільки змінна ще не оголошена)
let age = 10;
console.log(age); // 10
}
letExample();
const
Змінні, оголошені за допомогою const, також мають блокову область видимості, що означає, що вони доступні лише в межах блоку, в якому вони були оголошені. Змінні, оголошені за допомогою const, піднімаються, але не ініціалізуються, поки не будуть оголошені, як і змінні, оголошені за допомогою let. На відміну від двох інших, змінні, оголошені за допомогою const, не можуть бути перепризначені. Нижче наведено приклад, який показує все, що було пояснено.
// Const
function constExample() {
console.log(age); // ReferenceError (Оскільки змінна ще не оголошена)
const age = 10;
console.log(age); // 10
age = 20; // TypeError (Оскільки змінну не можна перепризначити)
}
constExample();
var
Коли змінні оголошуються за допомогою var, вони мають функціональну область видимості, що означає, що вони доступні протягом усієї функції. Вони також піднімаються на початок їх області видимості незалежно від того, де вони були оголошені. Ще одна важлива особливість — змінні, оголошені за допомогою var, можуть бути перепризначені. Приклад наведено нижче.
// Var
function varExample() {
console.log(age); // undefined
var age = 10;
console.log(age); // 10
}
varExample();
ЗАУВАЖНІ ВІДМІННОСТІ
- Змінні, оголошені за допомогою let і const, мають блокову область видимості, тоді як змінні, оголошені за допомогою var, мають функціональну область видимості.
- Змінні, оголошені за допомогою var, піднімаються на початок їх області видимості, незалежно від того, де вони були оголошені, тоді як змінні, оголошені за допомогою let і const, піднімаються, але не ініціалізуються, поки не будуть оголошені.
- Змінні, оголошені за допомогою var і let, можуть бути перепризначені, тоді як змінні, оголошені за допомогою const, не можуть бути перепризначені.
Перекладено з: DIFFERENCES BETWEEN let, const AND var