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

Какая область видимости у const

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

const имеет блочную область видимости. Это означает, что переменные, объявленные с помощью const, доступны только внутри блока, в котором они были объявлены, и не могут быть переназначены после инициализации.

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

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

Блочная область видимости

Переменные, объявленные с помощью const, имеют блочную область видимости. Это значит, что они доступны только внутри блока кода, в котором они были объявлены. Блок кода определяется фигурными скобками {}. Это может быть тело функции, условного оператора, цикла и т.д.

Пример:

if (true) {
    const message = "Hello, World!";
    console.log(message); // Выведет: Hello, World!
}
​
console.log(message); // Ошибка: message is not defined
  • Внутри блока if объявляется переменная message с помощью const.
  • console.log(message); внутри блока успешно выводит значение переменной.
  • Вне блока if попытка доступа к message вызывает ошибку, так как переменная не видна за пределами блока.

Инициализация и неизменяемость

Переменные, объявленные с помощью const, должны быть инициализированы в момент объявления. После этого их значение не может быть переназначено.

Пример:

const pi = 3.14;
pi = 3.14159; // Ошибка: Assignment to constant variable.
  • Переменная pi инициализируется значением 3.14.
  • Попытка переназначить pi вызывает ошибку, так как const не позволяет изменять ссылку на значение.

Изменяемость объектов и массивов

Хотя const не позволяет переназначать переменные, это не делает объекты и массивы, на которые они ссылаются, неизменными. Вы можете изменять содержимое объектов и массивов.

Пример:

const person = {
    name: "Alice",
    age: 30
};
​
person.age = 31; // Это допустимо
console.log(person.age); // Выведет: 31
​
const numbers = [1, 2, 3];
numbers.push(4); // Это допустимо
console.log(numbers); // Выведет: [1, 2, 3, 4]
  • Объект person и массив numbers объявлены с помощью const.
  • Изменение свойства age объекта person и добавление элемента в массив numbers допустимы, так как изменяется содержимое, а не сама ссылка.

Применение

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

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

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

Твои заметки