Специализация
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 в телеграм
Объяснить разницу между var, let и const в JavaScript?
var имеет функциональную область видимости, поддерживает поднятие и может быть переназначен. let имеет блочную область видимости и также может быть переназначен. const тоже имеет блочную область видимости, но его значение нельзя переназначить.
Расскажите об области видимости переменных?
Область видимости переменной определяет, где в коде эта переменная доступна. В JavaScript существуют глобальная область видимости, блочная область видимости и область видимости функции. Переменные, объявленные с var, имеют функциональную область видимости, а let и const — блочную область видимости, что означает, что они доступны только внутри блока, в котором были объявлены.
Как работают функции calc(), var(), clamp() и как они могут быть полезны для динамического расчета значений?
Функции calc(), var(), clamp() позволяют выполнять вычисления внутри CSS.
calc() используется для арифметических операций
var() — для использования CSS-переменных
clamp() помогает задавать значения с минимальным и максимальным ограничением
Почему при использовании var в цикле получаются одинаковые значения?
var имеет функциональную область видимости, а не блочную. В цикле все итерации используют одну и ту же переменную, поэтому в замыканиях получается последнее значение.
Что произойдёт при обращении к переменной до объявления через var?
При обращении к переменной, объявленной через var, до её объявления ошибки не будет. Переменная будет существовать, но её значение будет undefined. Это происходит из-за механизма поднятия объявлений. Однако инициализация значения происходит только в месте фактического объявления. Такое поведение часто приводит к трудноуловимым ошибкам.
Что произойдёт при обращении к переменной до объявления через let или const?
Как hoisting работает для var, let и const
Почему при использовании let и const возникает ReferenceError
Что произойдёт при использовании var в цикле с асинхронным кодом?
Рейтинг:
5
Сложность:
5
При обращении к переменной, объявленной через let или const, до её объявления произойдёт ошибка ReferenceError. Переменная существует, но недоступна до момента инициализации. Это поведение защищает код от неявных ошибок. Такое ограничение делает код более предсказуемым.
Рейтинг:
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 сразу сигнализируют об ошибке.
Рейтинг:
5
Сложность:
7
При использовании var в цикле все асинхронные колбэки будут ссылаться на одну и ту же переменную. К моменту выполнения асинхронного кода цикл уже завершится, и переменная будет иметь финальное значение. В результате вместо ожидаемых разных значений выводится одно и то же. Это происходит из-за функциональной, а не блочной области видимости var.
Рейтинг:
2
Сложность:
2
Рейтинг:
3
Сложность:
4
Рейтинг:
2
Сложность:
10
Рейтинг:
2
Сложность:
7
Рейтинг:
5
Сложность:
4