Lista pytań na egzamin

by Mateusz Pawełkiewicz published 2025/01/14 11:42:00 GMT+1, last modified 2025-04-10T21:47:33+01:00

Przykładowe pytania na egzamin

Autoryzacja i przechowywanie danych

  1. Czym są ciasteczka (cookies) w kontekście aplikacji webowych?

  2. Jakie atrybuty ciasteczek możemy ustawić i co one oznaczają (Secure, HttpOnly, SameSite, itd.)?

  3. Czym się różni localStorage od sessionStorage?

  4. Czym jest token JWT i jak działa w aplikacji frontendowej?

  5. Jak bezpiecznie przechowywać JWT po stronie klienta? Jakie są plusy i minusy różnych metod?

  6. Na czym polega proces odświeżania tokenu (refresh token) po stronie frontendu?

  7. Co to jest guard routingu i do czego służy?

  8. Jak stworzyć trasę (route), która będzie dostępna tylko dla zalogowanego użytkownika?

  9. Jak ukryć lub pokazać layout lub elementy UI (np. menu) w zależności od tego, czy użytkownik jest zalogowany?

  10. W jaki sposób frontend może wykryć, że access token wygasł i odświeżyć go automatycznie?

Komponenty i architektura

  1. Czym jest komponentowa architektura aplikacji frontendowej?

  2. Czym się różni komponent “głupi” (presentational) od “mądrego” (container)?

  3. Jak przekazać dane z komponentu rodzica do komponentu dziecka?

  4. Jak przekazać callback (np. metodę) z komponentu rodzica do komponentu dziecka?

  5. Jak komponent dziecka może przekazać dane do rodzica?

  6. Jak komunikować się między dwoma komponentami rodzeństwa (sibling)?

  7. Czym jest cykl życia komponentu i jakie ma etapy?

  8. Kiedy najlepiej wykonać pobieranie danych w cyklu życia komponentu?

  9. Jak działa unmounting komponentu i dlaczego ważne jest czyszczenie zasobów?

  10. Jak w React działa Strict Mode i dlaczego komponenty wywoływane są podwójnie w trybie developerskim?

Stan i logika

  1. Jakie są dobre praktyki zarządzania stanem w aplikacji frontendowej?

  2. Co to jest lifting state up i kiedy go używamy?

  3. Kiedy warto używać Context API?

  4. Jak działają hooki w React, np. useEffect i useState?

  5. Jak stworzyć komponent z własnym hookiem (custom hook)?

  6. Jak zarządzać formularzami i ich walidacją w nowoczesnej aplikacji frontendowej?

Testowanie

  1. Co to jest test jednostkowy (unit test) i dlaczego warto go pisać?

  2. Czym się różni test jednostkowy, integracyjny i end-to-end?

  3. Jak przetestować prostą funkcję w JavaScript (np. sumującą liczby)?

  4. Jak napisać test komponentu frontendowego (np. renderowanie z propsami)?

  5. Jakie narzędzia wykorzystuje się do testowania w frontendzie (Jest, Testing Library, itd.)?

Debugowanie i narzędzia

  1. Jakie są sposoby debugowania aplikacji frontendowej?

  2. Jak ustawić breakpoint w przeglądarce i sprawdzić stan aplikacji?

  3. Jak śledzić zapytania sieciowe (network requests) w DevTools?

  4. Jak analizować błędy w konsoli i co oznaczają typowe błędy JavaScript?

  5. Jak użyć instrukcji debugger i do czego służy?

Komunikacja z backendem

  1. Jaka jest różnica między zapytaniami synchronicznymi a asynchronicznymi?

  2. Czym się różni fetch od biblioteki axios?

  3. Jak wykonać zapytanie GET i POST do API przy użyciu fetch?

  4. Jak obsłużyć błędy przy zapytaniach fetch lub axios?

  5. Jak przesłać token JWT w nagłówku zapytania?

  6. Jak ustawić proxy w dev serwerze frontendowym i po co to robić?

JavaScript i TypeScript

  1. Czym różni się funkcja strzałkowa (arrow function) od funkcji klasycznej?

  2. Co to jest operator spread (...) i jak można go użyć w tablicach i obiektach?

  3. Jak połączyć dwa obiekty JavaScript w jeden?

  4. Czym są destrukturyzacja tablicy i obiektu w JavaScript?

  5. Jak działa "use strict" i co zmienia w działaniu JavaScript?

  6. Jak zdefiniować i używać typów w TypeScript (number, string, array)?

  7. Czym się różni type od interface w TypeScript?

  8. Jak typować funkcje w TypeScript (parametry i zwracany typ)?

  9. Jak zdefiniować typ generyczny w TypeScript?

  10. Jak ustawić typ dla komponentu z propsami w TypeScript?

Stylowanie i preprocessory

  1. Czym różni się CSS od preprocesorów SASS i LESS?

  2. Jakie zalety mają preprocesory CSS (np. zmienne, zagnieżdżanie)?

  3. Jak działa zmienna w SASS i jak jej użyć w stylach?

  4. Jak działa dziedziczenie i miksiny (mixins) w SASS?

Routing i layout

  1. Jak skonfigurować routing w aplikacji frontendowej?

  2. Jak dodać layout, który wyświetla się tylko po zalogowaniu (np. menu)?

  3. Jak przekierować użytkownika, jeśli nie jest zalogowany?

  4. Jak przekazać parametry (np. ID) przez URL w routingu?