Erzählen Sie mir von der interessantesten Aufgabe oder dem interessantesten Fehler bei einer Ihrer letzten beiden Arbeitsstellen.
Frontend
/** * Überprüft, ob die Klammern im String ausgeglichen sind oder nicht. * Klammern, die im String auftreten können: * [[{ und }]] * @param {string} str * @return {boolean} */ function parentheses(str) { const open = ['(', '[', '{']; const close = [')', ']', '}']; const stack = []; for (let i = 0; i < str.length; i++) { const letter = str[i]; if (open.includes(letter)) { stack.push(letter); } else if (close.includes(letter)) { const index = close.indexOf(letter); const lastOpenIndex = stack.length - 1; if (open[index] !== stack[lastOpenIndex]) { return false; } else { stack.splice(lastOpenIndex, 1); } } } return stack.length === 0; }
Was passiert, nachdem der Benutzer die URL im Browser eingegeben und Enter gedrückt hat – bis die Seite auf dem Bildschirm gerendert wird?
Warum wurde eine eigene Lösung für Diagramme verwendet, anstatt fertige Bibliotheken (z.B. Grafana)?
Wie war das CI/CD eingerichtet? Verwendeten Sie GitLab-Pipeline oder etwas anderes?
Worin unterscheiden sich die Attribute async und defer im script-Tag? Wie beeinflussen sie das Laden und die Ausführung von JavaScript?
Haben Sie an der Optimierung der Seitengeschwindigkeit und der Web Vitals Metriken (LCP, FMP, FCP) gearbeitet?
Wie oft waren Sie in die Produktion involviert und welche Rolle hatten Sie in diesem Prozess?
Wie wurde die Testung organisiert? Welche Werkzeuge wurden verwendet (Jest, Playwright)?
Es gibt einen Geldautomaten mit Banknoten bestimmter Nennwerte. Der Benutzer wählt den Geldbetrag, den er erhalten möchte. Der Geldautomat soll den vom Benutzer eingegebenen Betrag mit der geringstmöglichen Anzahl an Banknoten ausgeben. Schreiben Sie die Funktion des Geldautomaten. function atm(notes, sum) { } // atm([1, 5, 50, 100], 362) => [100,100,100,50, 5, 5, 1, 1]