Was ist eine reine Funktion? Wann ist eine Funktion rein? Was sind Nebenwirkungen?
Frontend
Wie verlief die Code-Review im Team? Gab es eine Regelung? Worauf wurde geachtet?
Werden Parameter in der Funktion per Referenz oder per Wert übergeben?
Erzählen Sie mir von den kritischen Phasen des Browser-Renderings
Erzähle mir vom Event Loop: Wofür er ist, wie er funktioniert
Angenommen, der folgende Codeausschnitt: ```typescript let info = { name: "Alex", skill: ["git", "react", "read"], }; let started = (info: any) => { let { name, skill } = info; (name = "Alex Pool"), skill.push("delete"); return { name, skill, online: true, }; }; ``` Erklären Sie, was die Funktion `started` mit dem `info`-Objekt macht und beschreiben Sie die Ausgabe bei Aufruf von `started(info)`. Diskutieren Sie auch, ob das ursprüngliche `info`-Objekt nach dem Aufruf von `started(info)` verändert wird.
Was ist das Pseudo-Array arguments? Worin unterscheidet es sich von einem normalen Array?
Was ist Rekursion? Welche Regeln gibt es? Wofür ist sie notwendig?
Was ist React-Reconciliation? Wie funktioniert es? Nach welchen Kriterien entscheidet React, ob eine Komponente aktualisiert oder neu gemountet werden soll?
Findet das Parsen von HTML und CSS sequenziell oder parallel statt?
Wann werden useEffect und useLayoutEffect aufgerufen?
Erzählen Sie mir von sich und Ihrer Berufserfahrung
// Promise.resolve() // .then(() => console.log(1)) // // .then(() => console.log(2)) // // Promise.resolve() // .then(() => console.log(11)) // // .then(() => console.log(22)) //
Wofür ist React notwendig? Welche Probleme löst es? Wann ist es überflüssig?
Was hat sich in React 18 im Reconciliation-Prozess geändert?
Funktion recursiveFunction(N) { let zähler = 0; if (N > 0) { zähler = zähler + 1; recursiveFunction(N - 1); } // console.log(zähler) } recursiveFunction(3); // 3 3 3 ? Erklären Sie, was die Ausgabe der Funktion sein wird und warum. Identifizieren Sie auch etwaige Probleme mit der aktuellen Implementierung der rekursiven Funktion und schlagen Sie vor, wie man sie korrigieren kann, um die Anzahl der rekursiven Aufrufe korrekt zu zählen und zu protokollieren.
Emotion und styled-components generieren Styles zur Laufzeit — ist das ein Problem? Wann fängt es an, Probleme zu machen? Welche Alternativen gibt es mit besserer Performance?
Erzähle mir vom Call Stack: wie er funktioniert, in welcher Reihenfolge die Aufgaben ausgeführt werden
import "./styles.css"; import React from "react"; const getData = () => { return Array.from({ length: 50 }, (el, idx) => ({ value: Math.random(), label: `Zeile ${idx + 1}`, })); }; export default function App() { const [data, setData] = React.useState(getData()); const handleUpdate = () => { setData((prev) => { return prev.map((row, i) => i === 0 ? { ...row, value: Math.random() } : row ); }); }; return ( <div> <h1>Listen-App</h1> <Button onClick={handleUpdate}>`Zeile 1` aktualisieren</Button> {data.map((row) => { return <Row key={row.label} label={row.label} value={row.value} />; })} </div> ); }
Was wird die Ausgabe des folgenden Codeausschnitts sein? ```javascript setTimeout(() => { console.log('B') }, 0) Promise.resolve().then(() => { console.log('C') }) Promise.resolve().then(() => { console.log('D') }) console.log('E') ```