Frontend
JavaScript-Aufgabe: Bestimmen Sie den Typ (typeof) für verschiedene Ausdrücke — new Array(), Objekt, Map, Zahl, Infinity, Ergebnis der Verkettung von Strings und Zahlen.
Was sind Composables und wozu sind sie nützlich?
Warum benötigt React einen virtuellen DOM-Baum? Warum kann man den echten DOM nicht direkt ändern? Was sind die Vor- und Nachteile verschiedener Ansätze?
Haben Sie Erfahrung mit der Migration von Webpack zu 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.
Wenn während der Ausführung des Event Loop eine neue Makroaufgabe erstellt wird, wie und wann wird sie verarbeitet?
Was tun, wenn Redis bei hoher Belastung voll läuft?
Erklären Sie, wie Promise.all in Ihrer rekursiven Lösung darauf wartet, dass alle Anfragen abgeschlossen sind. Warum kann die aktuelle Implementierung ein unvollständiges Ergebnis zurückgeben?
// Es gibt auch 25 Objekte, die // eine private ID und eine Methode zu deren Zuweisung haben // sowie ein Feld für das Erstellungsdatum. // Die ID kann eine Zahl oder eine Zeichenkette enthalten. // Das Erstellungsdatumfeld kann ebenfalls eine Zeichenkette oder eine Zahl enthalten. // Die Typen für Erstellungsdatum und ID stimmen überein (entweder Zeichenkette oder Zahl) // Beschreiben Sie einen Typ für solche Objekte let a = { getId: () => createdId: [phone] } let b = { getId: () => 'id', createdAt: '[phone]T20:00:00Z' } // Dieses Objekt darf NICHT dem Typ entsprechen: let c = { getId: () => 56, createdAt: '[phone]T20:00:00Z' }
/** * Implementieren Sie die Funktion, die einen Callback mit den Daten ausführt * und ein Array von Antworten Response[] zurückgibt. * Die Lösung sollte alle Anfragen parallel ausführen * aber nicht mehr als [limit] Anfragen gleichzeitig. * Das Ziel ist es, die gesamte Ausführungszeit zu minimieren. */ 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[]> { // START DER LÖSUNG HIER 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; // Fehlerbehandlung erforderlich } index++; run(); }; const startPack = Array.from({ length: limit }, run); await Promise.all(startPack); return result; }
Worin besteht der Unterschied zwischen einer Pfeilfunktion und einer normalen benannten Funktion?
Aufgabe Nr. 6: Was gibt dieses Code-Stück zurück (Aufruf einer Pfeilfunktion mit dem new-Operator)?
Welchem Temperamentstyp würdest du dich zuordnen – extrovertiert, introvertiert oder ambivertiert?
Erklären Sie, was die Event Loop ist. Was gehört zu den Mikrotasks und was zu den Makrotasks?
Erzählen Sie mir von der interessantesten Aufgabe im letzten Projekt.
Mit welchen Hooks können wir in React lokalen Zustand speichern?
Wie haben Sie das rollenbasierte Zugriffskonzept im Frontend umgesetzt? Wie wurde festgelegt, was dem Benutzer basierend auf den Berechtigungen angezeigt wird?
Was ist eine Hashtabelle und wie hängt sie mit Map zusammen? Was ist eine Kollision im Kontext von Hashtabellen?
/** * Es ist notwendig, eine asynchrone Funktion zu schreiben, * die die angegebene Anzahl von Millisekunden "schläft", * und dann erfolgreich endet */
Kannst du erklären, warum genau diese Zahl?