Lista pytań na egzamin
Przykładowe pytania na egzamin
Autoryzacja i przechowywanie danych
-
Czym są ciasteczka (cookies) w kontekście aplikacji webowych?
-
Jakie atrybuty ciasteczek możemy ustawić i co one oznaczają (Secure, HttpOnly, SameSite, itd.)?
-
Czym się różni localStorage od sessionStorage?
-
Czym jest token JWT i jak działa w aplikacji frontendowej?
-
Jak bezpiecznie przechowywać JWT po stronie klienta? Jakie są plusy i minusy różnych metod?
-
Na czym polega proces odświeżania tokenu (refresh token) po stronie frontendu?
-
Co to jest guard routingu i do czego służy?
-
Jak stworzyć trasę (route), która będzie dostępna tylko dla zalogowanego użytkownika?
-
Jak ukryć lub pokazać layout lub elementy UI (np. menu) w zależności od tego, czy użytkownik jest zalogowany?
-
W jaki sposób frontend może wykryć, że access token wygasł i odświeżyć go automatycznie?
Komponenty i architektura
-
Czym jest komponentowa architektura aplikacji frontendowej?
-
Czym się różni komponent “głupi” (presentational) od “mądrego” (container)?
-
Jak przekazać dane z komponentu rodzica do komponentu dziecka?
-
Jak przekazać callback (np. metodę) z komponentu rodzica do komponentu dziecka?
-
Jak komponent dziecka może przekazać dane do rodzica?
-
Jak komunikować się między dwoma komponentami rodzeństwa (sibling)?
-
Czym jest cykl życia komponentu i jakie ma etapy?
-
Kiedy najlepiej wykonać pobieranie danych w cyklu życia komponentu?
-
Jak działa unmounting komponentu i dlaczego ważne jest czyszczenie zasobów?
-
Jak w React działa Strict Mode i dlaczego komponenty wywoływane są podwójnie w trybie developerskim?
Stan i logika
-
Jakie są dobre praktyki zarządzania stanem w aplikacji frontendowej?
-
Co to jest lifting state up i kiedy go używamy?
-
Kiedy warto używać Context API?
-
Jak działają hooki w React, np. useEffect i useState?
-
Jak stworzyć komponent z własnym hookiem (custom hook)?
-
Jak zarządzać formularzami i ich walidacją w nowoczesnej aplikacji frontendowej?
Testowanie
-
Co to jest test jednostkowy (unit test) i dlaczego warto go pisać?
-
Czym się różni test jednostkowy, integracyjny i end-to-end?
-
Jak przetestować prostą funkcję w JavaScript (np. sumującą liczby)?
-
Jak napisać test komponentu frontendowego (np. renderowanie z propsami)?
-
Jakie narzędzia wykorzystuje się do testowania w frontendzie (Jest, Testing Library, itd.)?
Debugowanie i narzędzia
-
Jakie są sposoby debugowania aplikacji frontendowej?
-
Jak ustawić breakpoint w przeglądarce i sprawdzić stan aplikacji?
-
Jak śledzić zapytania sieciowe (network requests) w DevTools?
-
Jak analizować błędy w konsoli i co oznaczają typowe błędy JavaScript?
-
Jak użyć instrukcji
debugger
i do czego służy?
Komunikacja z backendem
-
Jaka jest różnica między zapytaniami synchronicznymi a asynchronicznymi?
-
Czym się różni fetch od biblioteki axios?
-
Jak wykonać zapytanie GET i POST do API przy użyciu fetch?
-
Jak obsłużyć błędy przy zapytaniach fetch lub axios?
-
Jak przesłać token JWT w nagłówku zapytania?
-
Jak ustawić proxy w dev serwerze frontendowym i po co to robić?
JavaScript i TypeScript
-
Czym różni się funkcja strzałkowa (arrow function) od funkcji klasycznej?
-
Co to jest operator spread (
...
) i jak można go użyć w tablicach i obiektach? -
Jak połączyć dwa obiekty JavaScript w jeden?
-
Czym są destrukturyzacja tablicy i obiektu w JavaScript?
-
Jak działa "use strict" i co zmienia w działaniu JavaScript?
-
Jak zdefiniować i używać typów w TypeScript (number, string, array)?
-
Czym się różni
type
odinterface
w TypeScript? -
Jak typować funkcje w TypeScript (parametry i zwracany typ)?
-
Jak zdefiniować typ generyczny w TypeScript?
-
Jak ustawić typ dla komponentu z propsami w TypeScript?
Stylowanie i preprocessory
-
Czym różni się CSS od preprocesorów SASS i LESS?
-
Jakie zalety mają preprocesory CSS (np. zmienne, zagnieżdżanie)?
-
Jak działa zmienna w SASS i jak jej użyć w stylach?
-
Jak działa dziedziczenie i miksiny (mixins) w SASS?
Routing i layout
-
Jak skonfigurować routing w aplikacji frontendowej?
-
Jak dodać layout, który wyświetla się tylko po zalogowaniu (np. menu)?
-
Jak przekierować użytkownika, jeśli nie jest zalogowany?
-
Jak przekazać parametry (np. ID) przez URL w routingu?