Какво е чиста функция? Кога една функция е чиста? Какви са страничните ефекти?
Frontend
Даден е следният фрагмент от код: ```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, }; }; ``` Обяснете какво прави функцията `started` с обекта `info` и опишете резултата от извикването на `started(info)`. Освен това, обсъдете дали оригиналният обект `info` се променя след извикването на `started(info)`.
Как протече прегледът на кода в екипа? Имаше ли регламент? На какво обръщаше внимание?
Разкажи ми за критичните етапи на рендериране на браузъра
Данните в функцията се предават по референция или по стойност?
Парсирането на HTML и CSS става последователно или паралелно?
Разкажи ми за event loop: за какво е, как работи
Какво е псевдо масивът arguments? Как се различава от обикновен масив?
Настроихте ли CI/CD пайплайни, линтери, prettier, pre-commit хукове — вие ги инициирахте или задачата дойде отгоре?
Какво е рекурсия? Какви са правилата й? За какво е необходима?
Какво е React Reconciliation? Как работи? По какви критерии React решава да актуализира или повторно монтира компонент?
// Promise.resolve() // .then(() => console.log(1)) // // .then(() => console.log(2)) // // Promise.resolve() // .then(() => console.log(11)) // // .then(() => console.log(22)) //
Разкажи ми за себе си и за своя опит в работата
Кога се извикват useEffect и useLayoutEffect?
Какъв ще бъде изходът от следния фрагмент код? ```javascript setTimeout(() => { console.log('B') }, 0) Promise.resolve().then(() => { console.log('C') }) Promise.resolve().then(() => { console.log('D') }) console.log('E') ```
функция recursiveFunction(N) { let брояч = 0; ако (N > 0) { брояч = брояч + 1; recursiveFunction(N - 1); } // console.log(брояч) } recursiveFunction(3); // 3 3 3 ? Обяснете какъв ще бъде резултатът от функцията и защо. Освен това, идентифицирайте всякакви проблеми с текущата реализация на рекурсивната функция и предложете как да ги коригирате, за да броите и регистрирате правилно броя на рекурсивните извиквания.
За какво е нужен React? Какви проблеми решава? Кога е излишен?
Какво се промени в React 18 в процеса на Reconciliation?
import "./styles.css"; import React from "react"; const getData = () => { return Array.from({ length: 50 }, (el, idx) => ({ value: Math.random(), label: `блок ${idx + 1}`, })); }; export default function App() { const [data, setData] = React.useState(getData()); const handleUpdate = () => { setData((prev) => { return prev.map((row, i) => i === 0 ? { ...row, value: Math.random() } : row ); }); }; return ( <div> <h1>Приложение списков</h1> <Button onClick={handleUpdate}>обновить `строку 1`</Button> {data.map((row) => { return <Row key={row.label} label={row.label} value={row.value} />; })} </div> ); }
Emotion и styled-components генерират стилове в реално време — това проблем ли е? Кога започва да боли? Какви са алтернативите с по-добра производителност?