← Усі теми

Питання на співбесіді з JavaScript (Senior) з відповідями

75 запитань для співбесіди з теми JavaScript (Senior) - з правильними відповідями, поясненнями й посиланнями на документацію.

Пройти цей тест
  1. 1.Як event loop обробляє задачі в браузері?
  2. 2.Що станеться зі сторінкою?
  3. 3.Чи виконується функція-виконавець new Promise(executor) синхронно?
  4. 4.Чому проміс нижче ніколи не відхилиться?
  5. 5.Як глобально відстежити необроблені відхилення промісів у браузері?
  6. 6.Що робить for await...of?
  7. 7.Для чого зручний async-генератор?
  8. 8.Для чого використовують Proxy?
  9. 9.Які умови гарантують, що об'єкт буде видалено збирачем сміття?
  10. 10.Який сценарій типово призводить до витоку пам'яті в SPA?
  11. 11.Чому з WeakRef і FinalizationRegistry радять бути обережними?
  12. 12.Чого немає в коду всередині Web Worker?
  13. 13.Навіщо передавати ArrayBuffer воркеру як transferable: postMessage(buf, [buf])?
  14. 14.Що вміє Service Worker?
  15. 15.Чим Server-Sent Events відрізняються від WebSocket?
  16. 16.Що обов'язково перевіряти в обробнику message під час спілкування з iframe через postMessage?
  17. 17.Як реалізувати патерн «спостерігач» засобами браузера без бібліотек?
  18. 18.Чим ResizeObserver кращий за обробник window.resize для компонента?
  19. 19.Що робить теговий шаблон?
  20. 20.У якому порядку Object.keys поверне ключі { b: 1, 2: 1, a: 1, 1: 1 }?
  21. 21.Як глибоко заморозити об'єкт?
  22. 22.Як серіалізувати об'єкт із циклічними посиланнями в JSON?
  23. 23.Як обмежити кількість одночасних запитів, якщо треба завантажити 100 URL?
  24. 24.Що таке експоненційний backoff під час повторення запитів?
  25. 25.Чому в реалізації debounce важливо зберігати this і аргументи?
  26. 26.Чому додавання властивостей об'єктам у різному порядку може сповільнити код у V8?
  27. 27.Як не блокувати інтерфейс під час обробки 100 000 елементів в основному потоці?
  28. 28.Чим performance.now() кращий за Date.now() для вимірювання часу виконання?
  29. 29.Що виведе new Date(2025, 1, 1).getMonth() і який це місяць?
  30. 30.Що станеться за 10n + 1?
  31. 31.Чому 9007199254740993 === 9007199254740992 повертає true?
  32. 32.Що таке ReDoS?
  33. 33.Чим небезпечна функція глибокого злиття об'єктів із користувацького JSON?
  34. 34.Чому eval і new Function зазвичай забороняють політикою безпеки?
  35. 35.Що може статися за циклічної залежності ES-модулів?
  36. 36.Як top-level await у модулі впливає на модулі, що його імпортують?
  37. 37.Що дає Promise.withResolvers() (ES2024)?
  38. 38.Що поверне new Set([1, 2, 3]).intersection(new Set([2, 3, 4]))?
  39. 39.Що робить Object.groupBy(users, u => u.role)?
  40. 40.Чим корисний MutationObserver?
  41. 41.Де зберігати великі структуровані дані на клієнті (наприклад, офлайн-кеш)?
  42. 42.Як синхронізувати дані між вкладками одного сайту?
  43. 43.Навіщо кешувати екземпляри Intl.NumberFormat?
  44. 44.Як правильно зібрати query-рядок з об'єкта параметрів?
  45. 45.Що поверне вираз?
  46. 46.Що поверне [1, 2, 3, 4].findLast(n => n % 2 === 1)?
  47. 47.Навіщо Error передають опцію cause?
  48. 48.Що таке Temporal Dead Zone для параметрів за замовчуванням?
  49. 49.Чим корисний globalThis?
  50. 50.Чому async-функцію не можна передати як виконавець у new Promise(async (resolve) => ...)?
  51. 51.Як перервати fetch через 5 секунд або коли користувач іде зі сторінки - що настане раніше?
  52. 52.Що дають ітераторні помічники на кшталт map.values().filter(...).take(3)?
  53. 53.Яку проблему розв'язує Promise.try(fn)?
  54. 54.Що дає цей регулярний вираз?
  55. 55.З чим відхиляється Promise.any, коли відхилено всі проміси?
  56. 56.Що має зробити сторінка, щоб використовувати SharedArrayBuffer?
  57. 57.Коли доречний requestIdleCallback?
  58. 58.Чому збирач може не вирізати tree-shaking'ом невикористаний експорт бібліотеки?
  59. 59.Чому цей код може заморозити сторінку, хоч використовує проміси?
  60. 60.Що повертає Object.is(-0, 0) і навіщо він потрібен?
  61. 61.Чим керує Symbol.toPrimitive?
  62. 62.Чому дорівнює [] + {}?
  63. 63.Навіщо використовувати Reflect.get(target, key, receiver) усередині пастки get у Proxy?
  64. 64.Чому планувальники (наприклад, у React) використовують MessageChannel, а не setTimeout(fn, 0)?
  65. 65.Як nonce у CSP дозволяє конкретні інлайн-скрипти?
  66. 66.Що забезпечують Trusted Types?
  67. 67.Як SameSite=Lax у сесійної cookie допомагає проти CSRF?
  68. 68.Від чого захищає атрибут integrity у <script> із CDN?
  69. 69.Для чого використовують new URL("./worker.js", import.meta.url)?
  70. 70.Що дає змогу зробити <script type="importmap">?
  71. 71.Як правильно сортувати імена для конкретної мови?
  72. 72.Навіщо використовувати Intl.PluralRules для повідомлень на кшталт «5 файлів»?
  73. 73.Як надійно зберігати й передавати дати?
  74. 74.Що робить метод toJSON в об'єкта?
  75. 75.Чи стабільна Array.prototype.sort у сучасних рушіях?