Frontend
Zadanie z JavaScript: określić typ (typeof) dla różnych wyrażeń — new Array(), obiekt, Map, liczba, Infinity, wynik konkatenacji łańcuchów i liczb.
Czym są composables i do czego służą?
Dlaczego React potrzebuje wirtualnego drzewa DOM? Dlaczego nie można bezpośrednio modyfikować rzeczywistego DOM? Jakie są zalety i wady różnych podejść?
Czy masz doświadczenie w migracji z Webpack na Vite?
async function loadUsers(ids) { const users = [] ids.forEach(async id => { const res = await fetch(`/api/users/${id}`) const user = await res.json() users.push(user) }) return users } Identify the problem with this code and suggest how to fix it.
Jeśli nowa makrotaska jest tworzona podczas wykonywania pętli Event Loop, jak i kiedy zostanie przetworzona?
Co zrobić, jeśli Redis się przepełni przy dużym obciążeniu?
Wyjaśnij, jak Promise.all oczekuje na wykonanie wszystkich zapytań w Twoim rozwiązaniu z rekurencją. Dlaczego obecna implementacja może zwrócić niepełny wynik?
// Istnieje również 25 obiektów, które // mają prywatny identyfikator i metodę jego przypisania // oraz pole daty utworzenia. // Identyfikator może zawierać liczbę lub ciąg znaków. // Pole daty utworzenia również może zawierać ciąg znaków lub liczbę. // Typy dla daty utworzenia i identyfikatora są zgodne (lub ciąg, lub liczba) // Opisz typ dla takich obiektów let a = { getId: () => createdId: [phone] } let b = { getId: () => 'id', createdAt: '[phone]T20:00:00Z' } // ten obiekt NIE powinien odpowiadać typowi: let c = { getId: () => 56, createdAt: '[phone]T20:00:00Z' }
/** * Implementuj funkcję, która wykona callback z danymi * i zwróci tablicę odpowiedzi Response[]. * Rozwiązanie powinno wykonywać wszystkie żądania równolegle * ale nie więcej niż [limit] żądań może być wykonywanych jednocześnie. * Celem jest minimalizacja całkowitego czasu wykonania. */ type Props<RequestData, Response> = { callback: (args: RequestData) => Promise<Response>; data: Array<RequestData>; limit: number; }; export async function runWithLimit<RequestData, Response>({ callback, data, limit, }: Props<RequestData, Response>): Promise<Response[]> { // POCZĄTEK ROZWIĄZANIA TUTAJ if (limit < 1 || data.length === 0) { return Promise.resolve([]); } if (limit >= data.length) { return Promise.all(data.map(callback)); } const result: Response[] = new Array(data.length); let index = 0; const run = async () => { if (index >= data.length) return; const elem = data[index]; try { result[index] = await callback(elem); } catch (err) { result[index] = (err) as Response; // obsługa błędu } index++; run(); }; const startPack = Array.from({ length: limit }, run); await Promise.all(startPack); return result; }
Czym różni się funkcja strzałkowa od zwykłej nazwanej funkcji?
Pytanie nr 6: Co zwróci ten fragment kodu (wywołanie funkcji strzałkowej za pomocą operatora new)?
Do jakiego typu temperamentu się zaliczasz: ekstrawert, introwert czy ambiwert?
Wyjaśnij, czym jest Event Loop. Co należy do mikrotasków, a co do makrotasków?
Opowiedz mi o najciekawszym zadaniu w ostatnim projekcie.
Jakie hooki możemy użyć do przechowywania lokalnego stanu w React?
Jak zaimplementowałeś model dostępu oparty na rolach na frontendzie? Jak określano, co pokazać użytkownikowi w zależności od uprawnień?
Czym jest tablica haszująca i jak jest związana z Map? Czym jest kolizja w kontekście tablic haszujących?
/** * Należy napisać asynchroniczną funkcję, * która będzie "spała" przez określoną liczbę milisekund, * a następnie pomyślnie się zakończy */
Czy możesz wyjaśnić, dlaczego akurat ta liczba?