← Wszystkie tematy

Pytania rekrutacyjne JavaScript (Senior) z odpowiedziami

75 pytań na rozmowę rekrutacyjną z tematu JavaScript (Senior) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.

Rozwiąż ten test
  1. 1.Jak event loop przetwarza zadania w przeglądarce?
  2. 2.Co stanie się ze stroną?
  3. 3.Czy funkcja executor w new Promise(executor) wykonuje się synchronicznie?
  4. 4.Dlaczego poniższy promise nigdy nie zostanie odrzucony?
  5. 5.Jak globalnie śledzić nieobsłużone odrzucenia promise'ów w przeglądarce?
  6. 6.Co robi for await...of?
  7. 7.Do czego przydaje się asynchroniczny generator?
  8. 8.Do czego służy Proxy?
  9. 9.W jakich warunkach garbage collector na pewno usunie obiekt?
  10. 10.Jaki scenariusz typowo powoduje wyciek pamięci w SPA?
  11. 11.Dlaczego zaleca się ostrożność z WeakRef i FinalizationRegistry?
  12. 12.Czego nie ma kod wewnątrz Web Workera?
  13. 13.Po co przekazywać ArrayBuffer do workera jako transferable: postMessage(buf, [buf])?
  14. 14.Co potrafi Service Worker?
  15. 15.Czym Server-Sent Events różnią się od WebSocket?
  16. 16.Co trzeba sprawdzić w handlerze message przy komunikacji z iframe'em przez postMessage?
  17. 17.Jak zaimplementować wzorzec obserwatora na API przeglądarki, bez bibliotek?
  18. 18.Dlaczego ResizeObserver jest lepszy niż handler window.resize dla komponentu?
  19. 19.Co robi tagged template?
  20. 20.W jakiej kolejności Object.keys zwróci klucze { b: 1, 2: 1, a: 1, 1: 1 }?
  21. 21.Jak głęboko zamrozić obiekt?
  22. 22.Jak zserializować do JSON obiekt z cyklicznymi referencjami?
  23. 23.Jak ograniczyć liczbę równoczesnych żądań przy ładowaniu 100 URL-i?
  24. 24.Czym jest exponential backoff przy ponawianiu żądań?
  25. 25.Dlaczego w implementacji debounce ważne jest zachowanie this i argumentów?
  26. 26.Dlaczego dodawanie właściwości do obiektów w różnej kolejności może spowolnić kod w V8?
  27. 27.Jak nie blokować UI przy przetwarzaniu 100 000 elementów w głównym wątku?
  28. 28.Dlaczego performance.now() jest lepsze niż Date.now() do mierzenia czasu wykonania?
  29. 29.Co zwraca new Date(2025, 1, 1).getMonth() i który to miesiąc?
  30. 30.Co się stanie przy 10n + 1?
  31. 31.Dlaczego 9007199254740993 === 9007199254740992 zwraca true?
  32. 32.Czym jest ReDoS?
  33. 33.Co jest niebezpiecznego w funkcji deep merge zastosowanej do JSON od użytkownika?
  34. 34.Dlaczego eval i new Function są zwykle zakazane polityką bezpieczeństwa?
  35. 35.Co może się stać przy cyklicznej zależności między modułami ES?
  36. 36.Jak await najwyższego poziomu w module wpływa na moduły, które go importują?
  37. 37.Co daje Promise.withResolvers() (ES2024)?
  38. 38.Co zwraca new Set([1, 2, 3]).intersection(new Set([2, 3, 4]))?
  39. 39.Co robi Object.groupBy(users, u => u.role)?
  40. 40.Do czego przydaje się MutationObserver?
  41. 41.Gdzie przechowywać duże ustrukturyzowane dane po stronie klienta (np. cache offline)?
  42. 42.Jak synchronizować dane między kartami tej samej strony?
  43. 43.Po co cache'ować instancje Intl.NumberFormat?
  44. 44.Jak poprawnie zbudować query string z obiektu parametrów?
  45. 45.Co zwróci wyrażenie?
  46. 46.Co zwraca [1, 2, 3, 4].findLast(n => n % 2 === 1)?
  47. 47.Po co przekazywać opcję cause do Error?
  48. 48.Czym jest Temporal Dead Zone dla parametrów domyślnych?
  49. 49.Do czego przydaje się globalThis?
  50. 50.Dlaczego nie należy przekazywać funkcji async jako executora w new Promise(async (resolve) => ...)?
  51. 51.Jak przerwać fetch po 5 sekundach lub gdy użytkownik opuści stronę - cokolwiek nastąpi pierwsze?
  52. 52.Co dają helpery iteratorów, np. map.values().filter(...).take(3)?
  53. 53.Jaki problem rozwiązuje Promise.try(fn)?
  54. 54.Co daje to wyrażenie regularne?
  55. 55.Czym odrzuca się Promise.any, gdy wszystkie promise'y zostaną odrzucone?
  56. 56.Co musi zrobić strona, by używać SharedArrayBuffer?
  57. 57.Kiedy requestIdleCallback jest odpowiedni?
  58. 58.Dlaczego bundler może nie usunąć (tree shaking) nieużywanego eksportu biblioteki?
  59. 59.Dlaczego ten kod może zamrozić stronę, choć używa promise'ów?
  60. 60.Co zwraca Object.is(-0, 0) i po co istnieje?
  61. 61.Czym steruje Symbol.toPrimitive?
  62. 62.Ile wynosi [] + {}?
  63. 63.Po co używać Reflect.get(target, key, receiver) w pułapce get obiektu Proxy?
  64. 64.Dlaczego schedulery (np. w React) używają MessageChannel zamiast setTimeout(fn, 0)?
  65. 65.Jak nonce w CSP dopuszcza konkretne skrypty inline?
  66. 66.Co wymuszają Trusted Types?
  67. 67.Jak SameSite=Lax na ciasteczku sesji pomaga przeciw CSRF?
  68. 68.Przed czym chroni atrybut integrity na <script> z CDN?
  69. 69.Do czego służy new URL("./worker.js", import.meta.url)?
  70. 70.Co umożliwia <script type="importmap">?
  71. 71.Jak poprawnie sortować nazwy dla danego języka?
  72. 72.Po co używać Intl.PluralRules w komunikatach typu „5 plików”?
  73. 73.Jak niezawodnie przechowywać i przesyłać daty?
  74. 74.Co robi metoda toJSON obiektu?
  75. 75.Czy Array.prototype.sort jest stabilne w nowoczesnych silnikach?