Frontend
[имя] спросил: Были ли случаи, когда нужно было донести какую-то фичу, которая не была в задаче, по собственному усмотрению?
У нас большое приложение и команда из 4 фронтенд-разработчиков. Как принять решение — разбивать на микрофронтенды или нет?
Часто сложный flex или grid layout работает отлично в Chrome, но в Safari, особенно на iOS и Mac, интерфейс бывает схлопывается по высоте или ломается скролл. Сталкивались ли с такой проблемой? Как отлаживали баги в Safari?
Расскажи про опыт с Node.js на примере какого-то проекта, что именно ты на нём разрабатывал
Расскажите про оптимизацию производительности — когда начинали оптимизировать и как
Что такое Awaited utility type в TypeScript?
Это был B2B или B2C сервис? Были ли метрики для отслеживания ошибок и пользовательского опыта?
// К массиву применяется метод findUnique, который возвращает новый массив из уникальных элементов, // то есть тех, которые в исходном массиве присутствуют всего один раз, расположенных в том же порядке. // Необходимо реализовать метод findUnique так, что бы он работал как обычный метод массива [10, 5, 10, 1, 6, 6, 7, 9, 9, 10].findUnique(); // [5, 1, 7]
Какие проекты приходилось проектировать — с нуля или крупные архитектурные блоки?
Расскажи о своём опыте работы в [компания] и причине перерыва с марта по текущий момент.
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));
Опишите, что происходит при нажатии на кнопку в React-компоненте со счётчиком: как работает useState, как React понимает, что нужно обновить именно эту часть DOM?
Какие utility-типы в TypeScript знаешь?
Расскажи про критические этапы рендеринга браузера
В какой момент вызывается useEffect и useLayoutEffect?
Что такое псевдомассив arguments? Чем отличается от обычного массива?
Парсинг HTML и CSS происходит последовательно или параллельно?
Расскажи про event loop: для чего нужен, как работает
Параметры в функцию передаются по ссылке или по значению?
Given the following code snippet: ```typescript let info = { name: "Alex", skill: ["git", "react", "read"], }; let started = (info: any) => { let { name, skill } = info; (name = "Alex Pool"), skill.push("delete"); return { name, skill, online: true, }; }; ``` Explain what the function `started` does with the `info` object and describe the output of calling `started(info)`. Also, discuss if the original `info` object is mutated after calling `started(info)`.