const customMap = (array, transform) => { // coś jak array.map(transform); }; const stringResults = customMap([1, 2, 3], item => item.toString()); const lengths = customMap(["cześć", "świat"], item => item.length);
Frontend
Czy pracowałeś już z Lighthouse? Wyobraź sobie, że powierzono ci zadanie poprawy metryki FCP (First Contentful Paint). Jakie pomysły przychodzą ci do głowy?
Czy zdarzyło się, że w jednej funkcji produktu zwracanych jest wiele pól, a w innej tylko dwa?
Jakie są problemy w obecnym podejściu do ładowania danych SSR i jak będą się one powiększać przy dodawaniu nowych stron?
Co najbardziej lubisz robić w pracy, a czego nie? Co zajmuje więcej czasu, niż byś chciał?
Jak się rozwijasz, jak uczysz się nowych technologii, co ostatnio zapamiętałeś?
Zaimplementuj funkcję foo, która przyjmuje tablicę i zwraca obiekt, gdzie klucze to elementy tablicy, a wartości to wszystkie 0.
W którym momencie poinformujesz, że nie zdążysz?
Opowiedz o swoim ostatnim miejscu pracy i projektach, nad którymi pracowałeś.
Co może się dziać na serwerze podczas generowania HTML (SSR) — na co serwer poświęca czas, jakie mogą wystąpić problemy z wydajnością i bezpieczeństwem podczas serializacji danych?
Czego interesującego i nowego nauczyłeś się ostatnio w świecie frontendu?
Określ kolejność wyświetlania w konsoli dla kodu z setTimeout, Promise, then, catch, finally i różnymi wywołaniami synchronicznymi (zadanie na Event Loop).
Jakie ulepszenia można by wprowadzić w przyszłości, aby poprawić jakość produktu?
Jaka jest różnica między używaniem hasOwnProperty a bezpośrednim sprawdzaniem wartości przez warunek (if o[x])? Co się stanie, jeśli wartość właściwości będzie false?
Zaimplementuj funkcję memoize, która buforuje wyniki wywołań funkcji asynchronicznych i nie wysyła powtórnego żądania, jeśli wywołanie z tymi samymi argumentami zostało już wykonane.
Jak zapewnić obsługę nowoczesnych formatów obrazów (WebP, AVIF) w przeglądarkach, które ich nie obsługują?
Do czego służy React.lazy? Jakie korzyści daje i jak działa pod maską?
<script> function sum(valueA) { throw 'Niezaimplementowane' } console.log(sum(1)()); // 1 console.log(sum(1)(2)()); // 3 console.log(sum(1)(2)(-3)()); // 0 </script>
Musisz napisać funkcję memoize — opakowanie do memoizacji. Dla uproszczenia można założyć, że funkcja zawsze będzie miała tylko jeden argument, i będzie to wartość prymitywna.
Istnieje funkcja customMap, która robi prawie to samo co zwykła metoda map na tablicy, ale nie jest typowana. Należy ją odpowiednio typować, tak aby w piątym wierszu był tablicą łańcuchów, a w siódmym tablicą liczb.