Spune-mi despre cea mai interesantă sarcină sau cea mai interesantă greșeală de la unul dintre ultimele tale două locuri de muncă.
Frontend
/** * Verifică dacă parantezele sunt echilibrate în șir sau nu. * Parantezele care pot apărea în șir: * [[{ și }]] * @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; }
Ce se întâmplă după ce utilizatorul introduce URL-ul în browser și apasă Enter, până când pagina este redată pe ecran?
De ce ați folosit o soluție personalizată pentru grafice în loc de biblioteci gata făcute (de exemplu, Grafana)?
Cum a fost organizat CI/CD? Ați folosit pipeline-ul GitLab sau altceva?
Care este diferența dintre atributele async și defer în tag-ul script? Cum influențează acestea încărcarea și executarea JavaScript-ului?
Ați lucrat la optimizarea încărcării paginilor și la metricile Web Vitals (LCP, FMP, FCP)?
Cât de des ai participat la producție și care a fost rolul tău în acest proces?
Cum a fost organizat testul? Ce instrumente au fost utilizate (Jest, Playwright)?
Există un bancomat cu bancnote de valori specificate. Utilizatorul alege suma de bani pe care dorește să o primească. Bancomatul trebuie să returneze suma introdusă de utilizator cu cel mai mic număr de bancnote. Scrie funcția bancomatului. function atm(notes, sum) { } // atm([1, 5, 50, 100], 362) => [100,100,100,50, 5, 5, 1, 1]