Frontend
Как реализовать валидацию формы с полями имя, email, телефон?
Где в PHP лежит тело POST-запроса? Как получить данные из формы и из JSON-запроса?
Как определить страну пользователя по HTTP-заголовкам?
Сделать функцию, которая reject'ит возвращаемый промис, передавая в качестве ошибки строку "timeout_error", если он не resolve'ится за указанный timeout, или ведет себя нормально исходному. @param {Promise} promise исходный промис @param {Number} timeoutMilliseconds время для timeout в миллисекундах @return {Promise} промис с нужным поведением function withTimeout(promise, timeout) { return new Promise((res, rej) => { const timeoutId = setTimeout(() => { rej("timeout_error") }) }) }
Что такое DOM? Как он устроен?
Почему Redux Toolkit не угодил и вы перешли на Effector?
Расскажите немного про себя, свой релевантный опыт и чем вы гордитесь больше всего из своих проектов.
Расскажи про Promise: что это такое, состояния и статические методы (особенно разница между Promise.all и Promise.race)?
Компонентами занималась самостоятельно? Продумывала, как будут работать компоненты, какие пропсы?
Checkbox и другие типы вопросов — это были разные компоненты или один универсальный? Как рендерили?
Как копировать объекты в JavaScript? Какие типы копирования бывают?
В каком формате приходили ответы с бэкенда и как вы их обрабатывали (про систему психологического тестирования с динамическими вопросами)?
function cloneDeep(something: Cloneable): Cloneable { /* * TODO: implement deep clone without JSON.parse/stringify */ return JSON.parse(JSON.stringify(something)); } function assertDeep(a: Cloneable, b: Cloneable) { if (JSON.stringify(a) !== JSON.stringify(b)) { console.error("Not OK"); } console.log("OK"); } const obj: Cloneable = { a: 1, b: true, c: "hello", d: { there: "are", some: ["properties"] }, e: {}, f: [(), (), { key: { value: [1, 2, "3", "four"] } }], g: [] }; assertDeep(obj, cloneDeep(obj));
/* * Function that emulates requesting data from backend. * Backend has RPS limitation, and will fail, * if parallel requests number is more than MAX_PARALLEL_REQUESTS. */ function requestData(id: number): Promise<string> { parallelRequests++; if (parallelRequests > MAX_PARALLEL_REQUESTS) { throw new Error("Too many parallel requests"); } return new Promise((res) => { setTimeout(() => { parallelRequests--; return res(`${id * 2}`); }, Math.floor(Math.random() * 2000)) }); } function prepareData( ids: number[], maxParallelRequests: number, ): Promise<string[]> { /* * TODO: implement requesting all data, * using no more than maxParallelRequests * parallel connections. */ }
Реализуйте кастомный React-хук useSubState, который принимает полный state, функцию setState и имя ключа (поля объекта), и возвращает кортеж из значения этого поля и функции для его изменения — аналогично useState, но для конкретного поля большого объекта-состояния.
Как работает сборщик мусора (Garbage Collector) в JavaScript?
Функция — это объект? Чем отличается обычная функция от стрелочной в контексте прототипов?
Были ли какие-то задачи или проекты по миграции с одного стека на другой?
Расскажи о каком-нибудь сложном решении, которое приходилось проектировать с нуля и разрабатывать.
Чем отличается __proto__ от [[Prototype]] и prototype?