Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Специализация

Python Backend Developer

Java Backend Developer

Node.js Backend Developer

Golang Backend Developer

React Frontend Developer

Посмотреть все

Выберите навыки

React

React

JavaScript

JavaScript

Git

Git

Redux

Redux

Webpack

Webpack

Посмотреть все

Сложность

1-3

4-6

7-8

9-10

Рейтинг вопросов

1

2

3

4

5

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

Вопросы React Frontend Developer


Объяснить разницу между var, let и const в JavaScript?

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

Подробнее

Расскажите об области видимости переменных?

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

Подробнее

Что такое temporal dead zone (временная мёртвая зона) в JavaScript и как она влияет на переменные?

Temporal dead zone (TDZ) — это период времени от начала области видимости переменной, объявленной с помощью let или const, до момента её инициализации. В TDZ переменные недоступны и попытка к ним обратиться вызовет ошибку. Это помогает избежать непредсказуемого поведения при работе с переменными.

Подробнее

Почему можно изменять содержимое объекта, объявленного через const?

Ключевое слово const запрещает переопределять ссылку на объект, но не запрещает менять его внутреннее содержимое.
Если объект объявлен через const, вы не можете присвоить ему другой объект, но можете изменять его свойства.
Это связано с тем, что const работает на уровне ссылки, а не на уровне структуры данных.
Поэтому добавление, изменение или удаление свойств объекта разрешено.

Подробнее

Что произойдёт при обращении к переменной до объявления через let или const?

При обращении к переменной, объявленной через let или const, до её объявления произойдёт ошибка ReferenceError. Переменная существует, но недоступна до момента инициализации. Это поведение защищает код от неявных ошибок. Такое ограничение делает код более предсказуемым.

Подробнее

Как hoisting работает для var, let и const

Почему при использовании let и const возникает ReferenceError

Почему переменные, объявленные через let или const в глобальной области, не становятся свойствами window?

Что произойдет при попытке изменить const?

Чем функциональная область видимости отличается от блочной?

  • Рейтинг:

    5

  • Сложность:

    8

Hoisting — это когда объявления “обрабатываются” до выполнения кода. У var объявление поднимается и переменная сразу инициализируется как undefined, поэтому к ней можно обратиться до строки объявления (получишь undefined). У let и const тоже есть поднятие объявления, но до фактической инициализации переменная находится в TDZ (temporal dead zone), и доступ к ней до объявления вызывает ReferenceError. const дополнительно требует инициализацию сразу при объявлении.

Подробнее
  • Рейтинг:

    5

  • Сложность:

    7

let и const поднимаются (hoisting есть), но не инициализируются сразу. До строки объявления переменная находится в TDZ, и любое обращение к ней приводит к ReferenceError. Это сделано намеренно, чтобы избежать скрытых багов, когда код читает переменную до ее логического объявления. В отличие от var, где до объявления возвращается undefined, let/const сразу сигнализируют об ошибке.

Подробнее
  • Рейтинг:

    4

  • Сложность:

    6

Переменные var в глобальной области становятся свойствами window, а let и const — нет. Это связано с тем, что let и const создаются в глобальном лексическом окружении, а не как свойства объекта. Они доступны в глобальной области видимости, но не через window. Это сделано для более безопасной и предсказуемой работы со scope.

Подробнее
  • Рейтинг:

    4

  • Сложность:

    2

При попытке напрямую присвоить новое значение переменной, объявленной через const, возникнет ошибка TypeError: Assignment to constant variable. Это происходит потому, что const создаёт неизменяемую привязку (binding) к значению. Однако важно помнить, что если значением const является объект или массив, то изменять (мутировать) внутренние свойства или элементы можно, так как неизменна сама ссылка, а не содержимое.
Подробнее
  • Рейтинг:

    5

  • Сложность:

    3

Функциональная область видимости (var) ограничена телом функции, а блочная (let/const) — блоком кода (например, внутри if или for). Переменные var всплывают (hoisting) и инициализируются undefined, а let/const находятся во временной мёртвой зоне до объявления. Это делает let/const более безопасными для современных проектов.
Подробнее
  • Рейтинг:

    2

  • Сложность:

    2

  • Рейтинг:

    3

  • Сложность:

    4

  • Рейтинг:

    2

  • Сложность:

    7

  • Рейтинг:

    5

  • Сложность:

    3

  • Рейтинг:

    5

  • Сложность:

    5