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