Специализация
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 в телеграм
Есть ли у стрелочной функции методы call, apply и bind?
Стрелочные функции могут использовать методы call, apply и bind, но эти методы не изменяют контекст this внутри стрелочной функции. В отличие от обычных функций, стрелочные функции наследуют значение this из своей внешней области видимости (лексический контекст), и методы call, apply и bind не могут его изменить.
Методы call, apply, bind — для чего они нужны?
Методы call и apply позволяют вызвать функцию с заданным значением this, но call передаёт аргументы через запятую, а apply — в виде массива. Метод bind возвращает новую функцию с фиксированным значением this, которая может быть вызвана позже. Эти методы полезны для контроля контекста выполнения функции, особенно при работе с методами объектов.
Для чего нужны callback и что такое Callback Hell?
Колбэк (callback) — это функция, которая передается другой функции в качестве аргумента и вызывается позже, когда произойдет какое-то событие или завершится операция. Проблема "Callback Hell" возникает, когда функции начинают вкладываться друг в друга слишком глубоко, что делает код трудночитаемым и сложным для поддержки.
Отличие useMemo от useCallback.
useMemo и useCallback оба предназначены для оптимизации производительности в React, но служат разным целям. useMemo запоминает вычисленные значения, а useCallback запоминает функции. Это позволяет избежать лишних вычислений и создания функций при каждом рендере компонента.
Для чего нужны useMemo и useCallback? Как работает мемоизация?
useMemo: Кэширует результат вычислений, пересчитывая только при изменении зависимостей.
useCallback: Кэширует функцию, предотвращая её пересоздание.
Оба помогают избежать лишних ререндеров.
У нас на сцене тысяча 3D-объектов с одинаковым мешем, но разными материалами — сколько будет draw calls и как это оптимизировать?
Что такое draw call и как уменьшить их количество?
В чём разница между Runnable и Callable?
Что такое call stack?
Гарантирует ли setTimeout выполнение callback ровно через заданное время?
Рейтинг:
3
Сложность:
5
Будет 1000 draw calls — по одному на каждый материал. Для оптимизации используйте GPU Instancing для одинаковых мешей, объединяйте материалы через texture atlasing, или применяйте Static/Dynamic batching. Это сократит draw calls до минимума.
Рейтинг:
5
Сложность:
7
Draw call — это команда GPU «отрисуй этот объект с этим материалом». Много draw calls замедляют игру, особенно на мобильных устройствах. Уменьшить их можно с помощью batching (Static/Dynamic), объединения мешей, атласа текстур, сокращения материалов, GPU Instancing, SRP Batcher и упрощения рендера. Главное — минимизировать количество уникальных материалов и переключений состояния рендера.
Рейтинг:
5
Сложность:
4
Runnable описывает задачу без возвращаемого результата. Callable может возвращать результат и выбрасывать проверяемые исключения. Runnable используется в простых сценариях. Callable чаще применяют вместе с пулами потоков. Выбор зависит от того, нужен ли результат выполнения.
Рейтинг:
5
Сложность:
5
Call stack — это структура данных, которая хранит информацию о вызовах функций. JavaScript добавляет функции в стек при вызове и удаляет их после завершения. Код выполняется строго сверху вниз, по принципу LIFO. Call stack помогает отслеживать, какая функция выполняется в данный момент. Переполнение стека приводит к ошибке.
Рейтинг:
5
Сложность:
6
setTimeout не гарантирует выполнение callback ровно через указанное время. Он гарантирует, что callback не выполнится раньше, чем пройдёт заданная задержка. После истечения задержки callback попадает в очередь задач и будет выполнен, когда освободится call stack. На фактическое время влияет нагрузка, блокировки и приоритеты очередей. Поэтому таймер часто срабатывает позже.
Рейтинг:
3
Сложность:
5
Рейтинг:
4
Сложность:
6
Рейтинг:
5
Сложность:
6
Рейтинг:
5
Сложность:
7
Рейтинг:
2
Сложность:
7