Разкажи за най-интересната задача или най-интересната грешка на едно от последните ти две работни места.
Frontend
/** * Проверява дали скобите в низът са балансирани или не. * Скобите, които могат да се срещнат в низа: * [[{ и }]] * @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; }
Какво се случва след като потребителят въведе URL в браузъра и натисне Enter – до изобразяването на страницата на екрана?
Защо използвахте персонализирано решение за графики вместо готови библиотеки (например, Grafana)?
Работили ли сте по оптимизацията на зареждането на страниците и по метриките Web Vitals (LCP, FMP, FCP)?
Каква е разликата между атрибутите async и defer в таговете script? Как те влияят на зареждането и изпълнението на JavaScript?
Как беше организиран CI/CD? Използвахте ли GitLab pipeline или нещо отделно?
Как беше организирано вашето тестване? Какви инструменти бяха използвани (Jest, Playwright)?
Колко често участвахте в производството и каква беше вашата роля в този процес?
Има банкомат с банкноти с определени номинали. Потребителят избира сумата пари, която иска да получи. Банкоматът трябва да даде въведената от потребителя сума с минимален брой банкноти. Напишете функцията на банкомата. function atm(notes, sum) { } // atm([1, 5, 50, 100], 362) => [100,100,100,50, 5, 5, 1, 1]