Frontend
/** * Task 3: Analyze the function below and fix any errors. Explain the role of the `never` type in TypeScript. */ function throwError(): never { throw new Error('An error occurred'); } /** * Task 4: Transform the given type `MaybeProps` to make all of its properties required. */ type MaybeProps = { a?: number; b?: string; }; /** * Task 5: Create a generic type `Container` that contains a single property `value`. * The type of `value` should be constrained to either `string` or `number`. */ type Container<T> = { value: T; };
Реализовать функцию sumPromises, которая принимает в качестве аргументов промисы и возвращает сумму результатов их выполнения. Функция может принимать любое количество аргументов. Можно использовать любые API промисов.
Расскажи немного про предыдущий опыт, чем занималась на прошлой работе. Какие-то интересные кейсы или какова роль в команде была?
Как работает Event Loop — какие очереди есть, порядок их исполнения? Расскажите про микрозадачи, макрозадачи, requestAnimationFrame, requestIdleCallback.
Расскажи подробнее о своём опыте: ты сам собирал требования или они приходили готовыми?
Посмотрите на этот код с SSR и singleton i18n классом. Найдите серьёзную проблему, которая может испортить HTML, отдаваемый пользователю. Как её исправить?
const Effects = () => { const [count, setCount] = useState(0); useLayoutEffect(() => console.log("each render 1")); console.log("each render 2"); useEffect(() => console.log("each render 3")); return ( <> {count} <button onClick={() => setCount((prevProps) => ++prevProps)}> Increment </button> </> ); }; export default Effects; // 1 рендер: // После клика: const Effects = () => { const [count, setCount] = useState(0); const [number, setNumber] = useState(0); useEffect(() => { console.log(count); return () => { console.log(count); }; }); return ( <> {count} <button onClick={() => setCount((prevProps) => ++prevProps)}> Increment </button> </> ); }; export default Effects; // 1 рендер: // 2 1 3 // После клика: // 2 1 3 // return null: // 2 1 3 // // 1: 1, 0 // +: 1, 2 // ++: 2, 2
Как обрабатываешь ошибки в JavaScript? Какие подходы или инструменты используешь?
Использовали ли вы FSD (Feature-Sliced Design) на проекте? Как писали samples и подписки на события в Effector при использовании FSD?
Были ли на работе люди, с которыми трудно было общаться? Принимались ли какие-то меры?
Это был B2B или B2C сервис? Были ли метрики для отслеживания ошибок и пользовательского опыта?
Виртуальный скролл вы реализовывали самостоятельно или использовали библиотеку?
Что знаешь про REST? Какие методы запросов бывают?
Что такое критический путь рендеринга? Какие этапы есть?
В компоненте расставлены console.log в родительском и дочернем компонентах, а также в useEffect. В каком порядке они выведутся и почему?
Какие проблемы безопасности связаны с использованием innerHTML для вставки пользовательского ввода?
Если твоя фича не единственная в релизе — как это меняет ситуацию с критичным багом?
Как React работает под капотом? Объясните механизм reconciliation, Virtual DOM, Fiber-архитектуру и зачем нужны две фазы (render и commit).
От чего зависит IP-адрес устройства? Что такое белые и серые IP-адреса?
/ * Даны три секции кода. Необходимо написать результат выполнения каждого console.log. * / var n = 1; function f(n) { n = 3; } f(n); console.log(n); // ?? // ---------------- var obj = { a: 1 }; function f1(o) { o.a = 5; } f1(obj); console.log(obj); // ?? // ---------------- var obj = { a: 1 }; function f2(o) { o = { hello: 1 }; } f2(obj);