Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: JavaScript, variables, let, const, var, scope

вввв

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

Короткий ответ

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

Длинный ответ

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

Область видимости (Scope)

Область видимости определяет, где в коде доступна переменная. var имеет функциональную область видимости, то есть переменная, объявленная внутри функции, доступна только внутри этой функции. В отличие от этого, let и const имеют блочную область видимости, ограничивая доступ переменной блоком кода, в котором она объявлена (например, внутри цикла или условного оператора).

Возможность переопределения

  • var: Позволяет повторное объявление и переназначение значения.
  • let: Запрещает повторное объявление в той же области видимости, но позволяет переназначение значения.
  • const: Запрещает как повторное объявление, так и переназначение значения после инициализации. Однако, если значением является объект или массив, его внутренние свойства или элементы могут быть изменены.

Примеры кода

Рассмотрим пример, демонстрирующий различия в области видимости:

function exampleScope() {
  if (true) {
    var varVariable = 'Я var';
    let letVariable = 'Я let';
    const constVariable = 'Я const';
  }
  console.log(varVariable); // 'Я var' — доступна
  console.log(letVariable); // Ошибка ReferenceError
  console.log(constVariable); // Ошибка ReferenceError
}
exampleScope();

А вот пример, показывающий возможность переопределения:

let count = 1;
count = 2; // Корректно
const pi = 3.14;
pi = 3.14159; // Ошибка TypeError: Assignment to constant variable.
const user = { name: 'Alice' };
user.name = 'Bob'; // Корректно — изменение свойства объекта
user = {}; // Ошибка — попытка переназначить саму переменную

Где и как применяется

В современной разработке на JavaScript (ES6+) рекомендуется по умолчанию использовать const для всех переменных, значение которых не планируется изменять. Это делает код более предсказуемым и предотвращает случайные переопределения. Ключевое слово let следует использовать для переменных, которые будут переназначаться, например, счётчиков в циклах. Использование var в новом коде считается устаревшей практикой из-за проблем с областью видимости и поднятием (hoisting), которое может приводить к неочевидным ошибкам.

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#JavaScript

#variables

#let

#const

#var

#scope

Подпишись на React Developer в телеграм