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

Зачем используется const?

1.0 Junior🔥 291 комментариев
#JavaScript Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

# Зачем используется const?

Основная цель

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

Ключевые преимущества

1. Предотвращение случайного переприсвоения

const MAX_USERS = 100;
MAX_USERS = 200; // ❌ TypeError: Assignment to constant variable

let count = 0;
count = 5; // ✅ OK — let позволяет переприсвоение

В большом приложении легко ошибиться и случайно перезаписать важную переменную. const защищает от таких ошибок на этапе выполнения.

2. Явное намерение программиста

Когда разработчик использует const, это сигнал другим: "Эта переменная не будет меняться". Это улучшает читаемость и поддерживаемость кода.

const API_BASE_URL = "https://api.example.com"; // Ясно: это константа
const userData = fetchUser(); // Ясно: объект не переприсвоится, но его свойства могут меняться
let isLoading = true; // Ясно: это значение будет меняться

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

В отличие от var, const имеет блочную область видимости (как и let):

function example() {
  if (true) {
    const x = 10;
  }
  console.log(x); // ❌ ReferenceError: x is not defined
}

// С var:
function example2() {
  if (true) {
    var y = 10;
  }
  console.log(y); // ✅ 10 — видна во всей функции (hoisting и function scope)
}

4. Помощь инструментам и линтерам

Современные линтеры (ESLint) и IDE могут автоматически предупредить, если вы пытаетесь переприсвоить const переменную. Это ловит ошибки ещё на этапе разработки.

Важный нюанс: const не означает immutability

Основная путаница: const предотвращает только переприсвоение, но НЕ делает объект неизменяемым:

const user = { name: "Alice" };

// ❌ Переприсвоение — ошибка
user = { name: "Bob" }; // TypeError

// ✅ Изменение свойства — работает
user.name = "Bob"; // OK
user.email = "alice@example.com"; // OK

// ❌ Переприсвоение массива
const numbers = [1, 2, 3];
numbers = [4, 5, 6]; // TypeError

// ✅ Изменение содержимого — работает
numbers.push(4); // OK
numbers[0] = 10; // OK

Для полной неизменяемости используйте Object.freeze() или функциональное программирование.

Best practices

  1. По умолчанию используйте const — это лучшая практика 2025 года
  2. Переходите на let только если нужно переприсвоение — будьте явны
  3. Избегайте var — он устарел и имеет confusing hoisting и function scope
  4. Логируйте изменения мутабельных объектов — это помогает отследить баги
// ✅ Правильно
const config = { theme: "dark" };
const apiKey = "secret123";

let currentUser = null;
if (isLoggedIn) {
  currentUser = fetchUser();
}

Заключение

const — это не просто синтаксический сахар. Это инструмент, который делает код безопаснее, понятнее и более надёжным. Правильное использование const, let и var (или полное отсутствие последнего) — признак зрелого JavaScript разработчика.