Frontend
Практическо задание: реализиране на компонент за автоматично попълване (търсене с предложения) — с debounce за въвеждане, отменяне на предишната заявка чрез AbortController, показване на състоянието на зареждане, списък с предложения и обработка на избора на елемент от списъка чрез клик.
Какви са очакванията към компанията и екипа?
За обект с стрелкова функция, която извежда this.name, определете какво ще бъде изведено и обяснете поведението на this в стрелковата функция.
С кого от екипа трябваше да взаимодействате в последния проект?
За какво всъщност се използват библиотеките за валидиране?
На кой етап от жизнения цикъл е по-добре да се направи заявка към бекенда?
console.log(1) setTimeout(() => { console.log(2) }, 10) setTimeout(() => { Promise.resolve().then(() => console.log(3)) }, 0); setTimeout(() => { console.log(4) }, 0); new Promise((_, reject) => { console.log(5) reject(6) console.log(7) }).then(() => console.log(8)) .catch(() => console.log(9)) .then(() => console.log(10)) .catch(() => console.log(11)) .then(() => console.log(12)) .then(console.log) .finally(() => console.log(13)) console.log(14)
Защо решихте да преминете от дизайн към фронтенд разработка?
Има ли функция foo, която приема аргументи от тип any и ги връща? Как да направим така, че типът на резултата да не е any, а да съответства на типа на предадения аргумент? Използвайте Генерични типове.
Колко често използваше Tailwind CSS? Разкажи за опита си с него.
Кои шаблони за дизайн знаете и сте прилагали, особено в Angular приложения?
Разкажи ми за атрибутите async и defer при добавяне на скриптове: каква е разликата, кога блокират парсирането на HTML?
Имало ли е опит да работиш без аналитик, когато трябваше сам да разбереш задачата?
При оптимизация на зареждането на тежко фронтенд приложение с 150 малки иконки, трябва ли иконите да се комбинират в един спрайт или да се използва CSS-inlining при използване на HTTP/2 или HTTP/3?
Разкажи ми за последното ти работно място: каква беше екипът и как беше организиран цикълът SDLC?
Кои HTTP методи знаете? Какво отличава PUT от PATCH?
Как да работите с асинхронен JavaScript? Каква е разликата между async/await и promises?
Какво се случва, когато HTML попадне в браузъра? Какви са блокиращите същности и как да работим с тях?
Ако имаме голям магазин, състоящ се от няколко части, и родителският компонент използва една част от състоянието, а детският друга, как да осигурим независим повторен рендеринг на тези компоненти без да ги обвиваме в useMemo?
9. Копиране По време на изпит професор Флойд забелязал, че някои студенти обменят бележки. Първоначално той искал да им постави всички двойки, но професорът бил добър и решил да раздели студентите на две групи: тези, които позволяват копиране, и да постави двойки само на първата. Професорът е записал всички двойки студенти, които са обменяли бележки. Трябва да се определи дали може да раздели студентите на две групи така, че всеки обмен на бележки да се извършва от студент от една група към студент от другата група. Формат на въвеждане В първия ред са разположени две числа N и M — броят на студентите и броят на двойките студенти, обменящи бележки (1 ≤ N ≤ 10^2, 0 ≤ M ≤ N(N-1)/2). След това в M реда са описанията на двойките студенти: две числа, съответстващи на номерата на студентите, обменящи бележки (номерирането на студентите започва от 1, всяка двойка студенти е изброена не повече от веднъж). Формат на изхода Трябва да се изведе отговорът на задачата на професор Флойд. Ако е възможно да разделите студентите на две групи, изведете YES; иначе, NO.