Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Что такое "всплытие" (hoisting) в контексте переменных и функций?
Hoisting (всплытие) - это механизм в JavaScript, при котором объявления переменных и функций "поднимаются" в начало своей области видимости. Объявления функций поднимаются полностью, а переменные, объявленные через var - только объявление, но не инициализация. let и const также всплывают, но не инициализируются до фактического объявления.
Какие виды объявления функций всплывают (hoisting)?
Полностью всплывают только Function Declarations (объявления функций). Function Expressions (функциональные выражения), включая стрелочные функции, не всплывают - всплывает только объявление переменной, но не присваивание функции. Объявления классов также не всплывают.
Что произойдёт при обращении к переменной до объявления через var?
При обращении к переменной, объявленной через var, до её объявления ошибки не будет. Переменная будет существовать, но её значение будет undefined. Это происходит из-за механизма поднятия объявлений. Однако инициализация значения происходит только в месте фактического объявления. Такое поведение часто приводит к трудноуловимым ошибкам.
Как hoisting работает для var, let и const
Hoisting — это когда объявления “обрабатываются” до выполнения кода. У var объявление поднимается и переменная сразу инициализируется как undefined, поэтому к ней можно обратиться до строки объявления (получишь undefined). У let и const тоже есть поднятие объявления, но до фактической инициализации переменная находится в TDZ (temporal dead zone), и доступ к ней до объявления вызывает ReferenceError. const дополнительно требует инициализацию сразу при объявлении.
Как объявляются функции в JavaScript и чем отличаются function declaration и arrow function?
Function declaration объявляется через ключевое слово function и поднимается (hoisting). Arrow function записывается через стрелочный синтаксис и не имеет собственного this. Также arrow function нельзя использовать как конструктор и у нее нет arguments.
В какой момент создаются переменные внутри функции?
Рейтинг:
4
Сложность:
6
Переменные внутри функции создаются на этапе подготовки контекста выполнения, ещё до выполнения кода функции. Движок JavaScript сначала создаёт переменные и функции, а затем выполняет код построчно. При этом var и функции инициализируются иначе, чем let и const. Последние находятся в так называемой временной мёртвой зоне до момента объявления.
Рейтинг:
4
Сложность:
7
Рейтинг:
2
Сложность:
7
Рейтинг:
5
Сложность:
4
Рейтинг:
5
Сложность:
8
Рейтинг:
5
Сложность:
5