Zestawy rozmówBlog

Twoja wymarzona praca? Lets Git IT.
Interaktywna platforma przygotowująca do rozmów technicznych dla nowoczesnych programistów.

XGitHub

Platforma

  • Kategorie

Zasoby

  • Blog
  • O aplikacji
  • FAQ
  • Sugestie

Prawne

  • Polityka prywatności
  • Regulamin

© 2026 LetsGit.IT. Wszelkie prawa zastrzeżone.

JavaScript

Baza pytań rekrutacyjnych i wiedzy. Filtruj, szukaj i sprawdzaj swoją wiedzę.

Tematy

Jakie są różnice między var, let i const?

easyvariablesscopees6
Otwórz pytanie

Odpowiedź

var ma zasięg funkcji i można je redeklarować; let/const mają zasięg bloku. const blokuje ponowne przypisanie (ale obiekty nadal można mutować).

Wyjaśnij hoisting w JavaScript. Co jest hoistowane, a co nie?

mediumhoistingscopetdz
Otwórz pytanie

Odpowiedź

Deklaracje funkcji i var są hoistowane, ale inicjalizacje już nie. let/const też są hoistowane, ale do inicjalizacji są w tzw. temporal dead zone.

Jaka jest różnica między == i === w JavaScript?

easyequalitycoercion
Otwórz pytanie

Odpowiedź

== wykonuje konwersję typów przed porównaniem, a === porównuje wartość i typ bez konwersji.

Czym jest closure i podaj typowe zastosowanie.

mediumclosuresscope
Otwórz pytanie

Odpowiedź

Closure to sytuacja, gdy funkcja wewnętrzna zachowuje dostęp do zmiennych z zewnętrznego zakresu. Typowe zastosowania to enkapsulacja danych i fabryki funkcji.

Jak działa wiązanie this i jak call/apply/bind je zmieniają?

mediumthiscall-apply-bind
Otwórz pytanie

Odpowiedź

this zależy od miejsca wywołania. call/apply wywołują funkcję od razu z podanym this, a bind zwraca nową funkcję z na stałe ustawionym this.

Wyjaśnij dziedziczenie prototypowe w JavaScript.

mediumprototypesinheritance
Otwórz pytanie

Odpowiedź

Obiekty dziedziczą po innych obiektach przez łańcuch prototypów. Odczyt właściwości idzie w górę łańcucha aż do znalezienia lub null. Powiązania tworzy się np. przez Object.create lub składnię class.

Czym jest event loop i czym różnią się microtaski od macrotasków?

hardevent-loopasync
Otwórz pytanie

Odpowiedź

Event loop obsługuje call stack i kolejki zadań. Microtaski (np. callbacki Promise) uruchamiają się przed kolejnym macrotaskiem (np. setTimeout).

Jak działają Promise i czym różnią się od callbacków?

mediumpromisesasync
Otwórz pytanie

Odpowiedź

Promise reprezentuje przyszłą wartość (pending/fulfilled/rejected) i pozwala na chaining przez then/catch. Callback to funkcja przekazana do wywołania później, często prowadząca do zagnieżdżeń.

Czym jest async/await i jak obsługujesz błędy?

mediumasync-awaitpromises
Otwórz pytanie

Odpowiedź

async/await to składnia nad Promise pozwalająca pisać kod asynchroniczny w stylu synchronicznym. Błędy obsługujesz przez try/catch wokół await lub przez .catch().

Jaka jest różnica między shallow i deep copy? Jak zrobić deep clone?

hardobjectscopydeep-clone
Otwórz pytanie

Odpowiedź

Shallow copy kopiuje tylko poziom najwyższy i zachowuje referencje do zagnieżdżeń. Deep copy klonuje rekurencyjnie zagnieżdżone obiekty (np. structuredClone lub własny deep clone).

Czym są debounce i throttle i kiedy ich używać?

mediumperformancedebouncethrottle
Otwórz pytanie

Odpowiedź

Debounce opóźnia wykonanie do momentu, gdy zdarzenia przestaną się pojawiać; throttle ogranicza liczbę wywołań do raz na interwał. Debounce do inputów, throttle do scroll/resize.

Wyjaśnij null vs undefined w JavaScript.

easytypesnullundefined
Otwórz pytanie

Odpowiedź

undefined oznacza, że zmienna została zadeklarowana, ale nie przypisana; null to jawna pusta wartość. typeof null historycznie zwraca "object".

Czym jest type coercion? Podaj zaskakujący przykład.

mediumcoerciontypes
Otwórz pytanie

Odpowiedź

Type coercion to automatyczna konwersja typów (np. 3 + 2 + "7" daje "57").

Wyjaśnij map, filter i reduce dla tablic.

easyarraysfunctional
Otwórz pytanie

Odpowiedź

map przekształca każdy element, filter zachowuje elementy spełniające warunek, a reduce agreguje do jednej wartości.

Co robi Promise.all i kiedy go użyć?

mediumpromisesasync
Otwórz pytanie

Odpowiedź

Promise.all czeka aż wszystkie promisy się spełnią i odrzuca, gdy któryś się odrzuci. Używaj do równoległych zadań asynchronicznych i zbierania wyników.