← Назад ко всем вопросам

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

1️⃣ Как кратко ответить

var, let и const — это ключевые слова для объявления переменных в JavaScript. var имеет функциональную область видимости и подвержен всплытию, что может привести к неожиданным результатам. let и const имеют блочную область видимости, что делает их более предсказуемыми. let позволяет изменять значение переменной, тогда как const используется для объявления констант, которые нельзя переназначить.

2️⃣ Подробное объяснение темы

В JavaScript переменные могут быть объявлены с помощью ключевых слов var, let и const. Каждое из них имеет свои особенности и области применения.

var

  • Область видимости: Переменные, объявленные с помощью var, имеют функциональную область видимости. Это означает, что они доступны в функции, в которой были объявлены, или в глобальной области, если объявлены вне функции.
  • Всплытие (Hoisting): Переменные, объявленные с помощью var, подвержены всплытию. Это значит, что их объявление перемещается в начало функции или глобальной области, но не их инициализация.

Пример:

console.log(x); // undefined
var x = 5;
console.log(x); // 5

В этом примере переменная x всплывает, поэтому первая console.log выводит undefined, а не вызывает ошибку.

let

  • Область видимости: Переменные, объявленные с помощью let, имеют блочную область видимости. Это значит, что они доступны только в блоке кода, в котором были объявлены, например, внутри {}.
  • Всплытие: Хотя let также подвержен всплытию, он не инициализируется до тех пор, пока не будет достигнут в коде. Это предотвращает доступ к переменной до ее объявления.

Пример:

{
  let y = 10;
  console.log(y); // 10
}
console.log(y); // ReferenceError: y is not defined

Здесь y доступна только внутри блока {}.

const

  • Область видимости: Как и let, const имеет блочную область видимости.
  • Всплытие: Подвержен всплытию, но не инициализируется до тех пор, пока не будет достигнут в коде.
  • Изменяемость: Переменные, объявленные с помощью const, должны быть инициализированы при объявлении и не могут быть переназначены. Однако, если const используется для объектов или массивов, их содержимое может изменяться.

Пример:

const z = 15;
console.log(z); // 15
z = 20; // TypeError: Assignment to constant variable.

Для объектов:

const obj = { a: 1 };
obj.a = 2; // Это допустимо
console.log(obj.a); // 2

Зачем это нужно

Использование let и const вместо var позволяет избежать многих распространенных ошибок, связанных с областью видимости и всплытием. let подходит для переменных, значение которых может изменяться, а const — для значений, которые не должны изменяться после инициализации. Это делает код более предсказуемым и легким для понимания.

Тема: JavaScript
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки