Специализация
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 в телеграм
Способы создания (объявления) переменной в JavaScript?
В JavaScript переменные можно объявлять с помощью var, let и const. var — это устаревший способ, у него есть особенности, такие как поднятие и функциональная область видимости. let и const появились в ES6 и имеют блочную область видимости. const используется для переменных, которые нельзя переназначить.
Что такое замыкания в JavaScript и почему они важны?
Замыкание — это функция, которая "запоминает" свою область видимости даже после того, как внешняя функция, в которой она была объявлена, завершила выполнение. Замыкания позволяют создавать функции с доступом к переменным из внешней функции, что полезно для работы с приватными данными и сохранения состояния между вызовами функции.
Какие бывают проблемы с использованием замыканий, особенно в циклах? Как их можно избежать?
Замыкания — это функция, которая запоминает свое окружение. Проблема возникает, когда в циклах замыкания "запоминают" одно и то же значение переменной, которая изменяется на каждой итерации. Это приводит к тому, что все замыкания используют одно и то же последнее значение. Чтобы избежать этой проблемы, можно использовать let вместо var или создавать новую область видимости с помощью IIFE.
Как движок JavaScript ищет ссылки на переменные в определенном scope?
JavaScript использует механизм, называемый "лексическое окружение", для поиска ссылок на переменные в определенном scope (области видимости). Когда функция вызывается, создается новое лексическое окружение, которое включает в себя ссылки на переменные, объявленные в родительских scopes. Если переменная не найдена в текущем scope, движок продолжает поиск в родительских scopes до тех пор, пока не найдет переменную или не достигнет глобального scope.
Что такое temporal dead zone (временная мёртвая зона) в JavaScript и как она влияет на переменные?
Temporal dead zone (TDZ) — это период времени от начала области видимости переменной, объявленной с помощью let или const, до момента её инициализации. В TDZ переменные недоступны и попытка к ним обратиться вызовет ошибку. Это помогает избежать непредсказуемого поведения при работе с переменными.
Что такое CSS-переменные и в чем их преимущества?
Зачем нужен State Manager и Контекст? Почему просто не создавать переменные?
Как замыкание связано с лексическим окружением?
Как использовать CSS-переменные для синхронизации размеров и позиционирования?
В чём разница между state, ref и локальными переменными
Рейтинг:
3
Сложность:
6
CSS-переменные — это настраиваемые свойства, определяемые пользователем, которые можно использовать повторно в различных местах стилей. Они задаются с префиксом -- и могут быть изменены в зависимости от контекста, например, внутри медиазапросов. Это упрощает управление стилями и позволяет более гибко адаптировать дизайн.
Рейтинг:
5
Сложность:
5
Глобальные переменные – не вызывают перерендер, сложно отслеживать изменения.
Контекст (Context) – удобен для передачи данных без пропс-дриллинга.
State Manager (Redux, MobX) – предсказуемость, время-путешествие (debug), масштабируемость.
Рейтинг:
5
Сложность:
6
Замыкание напрямую связано с лексическим окружением функции. Функция в JavaScript запоминает окружение, в котором была объявлена, а не в котором была вызвана. Благодаря этому она может обращаться к переменным внешней функции даже после её завершения. Лексическое окружение определяет, какие переменные доступны функции. Именно оно лежит в основе механизма замыканий.
Рейтинг:
4
Сложность:
7
CSS-переменные позволяют объявить значение один раз и использовать его сразу в нескольких местах: размерах, отступах и позиционировании. Это помогает синхронизировать layout без дублирования чисел. Переменные можно менять на уровне компонента, темы или состояния. Такой подход уменьшает ошибки и упрощает поддержку.
Рейтинг:
5
Сложность:
8
state вызывает ререндер и используется для UI. ref сохраняет значение между рендерами, но не вызывает обновление интерфейса. Локальные переменные пересоздаются при каждом рендере и не сохраняют состояние. Каждый инструмент решает свою задачу и не является взаимозаменяемым.
Рейтинг:
2
Сложность:
1
Рейтинг:
4
Сложность:
5
Рейтинг:
3
Сложность:
6
Рейтинг:
3
Сложность:
8
Рейтинг:
2
Сложность:
7