1. Как работает Jest под капотом (разница между jsdom и браузером)?
Jest использует
jsdom для эмуляции браузерного окружения в Node.js. Это значит, что тесты могут работать с DOM-методами без запуска реального браузера, но не все браузерные API полностью поддерживаются, и поведение может немного отличаться.2. Почему MutationObserver использует микротаски в Event Loop?
MutationObserver выполняет свои колбэки в микротасках, чтобы изменения DOM обрабатывались сразу после текущей задачи, но до рендеринга и макротасков. Это позволяет быстро реагировать на изменения, сохраняя высокую производительность.3. Как избежать переполнения кэша?
Можно ограничивать размер кэша и удалять старые записи по принципу LRU (Least Recently Used) или по времени жизни (TTL). Также важно периодически очищать кэш.
4. Как реализовать кэширование данных без библиотек?
Кэширование можно реализовать с помощью объекта или
Map, сохраняя данные по ключу и возвращая их при повторных запросах. Это снижает количество повторных вычислений или запросов к серверу.5. Какие хранилища подходят для больших данных (LocalStorage, IndexedDB)?
Для больших объемов данных лучше использовать
IndexedDB, так как оно поддерживает асинхронную работу и хранение структурированных объектов. LocalStorage подходит для небольших объемов (до ~5 МБ) и синхронных операций.#jest #jsdom #testing #javascript #mutationobserver #event_loop #cache #lru #ttl #map #localstorage #indexeddb