Чем отличаются throw 'message' и throw new Error('message')? throw 'message': выбрасывает примитив string и не формирует стек ошибки throw new Error('message'): создаёт объект Error со стеком вызовов Error…
preventDefault отменяет предусмотренное браузером действие, связанное с событием: например, переход по ссылке или отправку формы. Этот метод применяют, когда стандартное действие требуется заменить собственной логикой…
Располагают ли стрелочные функции методами call, apply и bind? Стрелочные функции получают методы call, apply и bind через наследование от Function.prototype Однако bind не способен изменить контекст this стрелочной…
Зачем нужны State Manager и Контекст, если можно использовать обычные переменные? состояние управляется централизованно и предсказуемо локальные переменные не подходят для сложных связей между компонентами снижается…
Зачем нужны методы call, apply и bind в JavaScript? Позволяют явно задавать контекст выполнения функции (this) call: запускает функцию, получая аргументы через запятую apply: запускает функцию, принимая аргументы…
Как удалить или вставить произвольные элементы массива? операции с массивами, базовые действия удаление: метод splice(start, deleteCount, ...items) splice удаляет из массива элементы, начиная с позиции start, в…
сначала анализировать имеющееся решение и находить "узкие места" — операции, обладающие наибольшей сложностью выбирать алгоритмы с более высокой эффективностью и меньшей асимптотикой, например O(n log n) вместо O(n²)…
Для работы с асинхронными HTTP-запросами через fetch API применяется AbortController, позволяющий отменять операции Сначала создаётся контроллер: const controller = new AbortController() Затем его сигнал передаётся…
Для синхронных исключений применяют глобальный обработчик ошибок через window.onerror Чтобы подробно отслеживать ошибки загрузки ресурсов и JavaScript, используют window.addEventListener('error', ...) Событие…
Как получать данные в реальном времени? задача: передавать данные с минимальной задержкой WebSocket: постоянное двунаправленное соединение SSE (Server-Sent Events): передача данных от сервера клиенту MQTT: лёгкий…
Как предотвратить утечки памяти в escaping-замыканиях? Escaping-замыкание продолжает существовать после завершения вызова, например в callback или async-коде Чаще всего утечку вызывают сильные ссылки на self,…
Реализация add(1)(2) и расширение прототипа Number Каррирование функции — это приём, при котором функция возвращает новую функцию, сохраняя параметр в замыкании add(a) => (b) => a + b — минимальная реализация с…