← Все вопросы

Чем отличаются var, let и const в JavaScript?

Задан 16 месяцев назад1.3к просмотров4 ответа
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 месяцев назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект