← Все вопросы
Чем отличаются var, let и const в JavaScript?
21
Только начал учить JS, везде вижу то var, то let, то const. В чём между ними разница и что использовать по умолчанию?
4 ответа
38
Коротко:
const— значение нельзя переприсвоить (по умолчанию бери его).let— можно переприсвоить, нужен для счётчиков, накопителей и т.п.var— старьё, область видимости функции, всплывает (hoisting), легко выстрелить себе в ногу.
Правило на каждый день: по умолчанию const, если нужно менять — let, var не используй вообще.
const PI = 3.14; // не поменяешь
let count = 0; // count++ ок
count += 1;
Главное отличие на практике — область видимости. let и const живут только внутри {} блока, а var — во всей функции:
if (true) {
var a = 1;
let b = 2;
}
console.log(a); // 1
console.log(b); // ReferenceError
Сергей Попроцкий топ объяснение, спасибо 🙏 · 16 месяцев назад
Гоша Забурев автор: то что надо · 16 месяцев назад
19
const для константы — это не значит что объект «заморожен». Ссылку менять нельзя, а вот содержимое массива/объекта спокойно меняется:
const arr = [1, 2];
arr.push(3); // ок, arr = [1,2,3]
arr = []; // а вот это TypeError
Kay Altos вот это часто забывают 👍 · 16 месяцев назад
7
По умолчанию const, остальное по необходимости.
-6
var лучше, он же глобальный, всегда работает.
Алексей Царев глобальный — это минус, а не плюс · 16 месяцев назад
Vas Harrington нет, это как раз источник багов · 16 месяцев назад
Ваш ответ
Войдите, чтобы ответить на вопрос.