Frontend
TypeScript-тің қай түрін қолданбауға тырысқан дұрыс және неге? Қандай балама бар?
Қандай гидратацияның типтік қателері бар және оларды қалай болдырмауға болады?
CSS display: block, inline және inline-block қалай ерекшеленеді?
Қолданба күйін басқаруда Redux-тің рөлі қандай?
Playwright-пен E2E тестілеу туралы айтыңыз: тестілеу жүйесі қалай ұйымдастырылды, қалай іске қосылды, артқы жақпен қалай әрекеттестік жасадыңыз және тест деректерінің қайталануын қалай қамтамасыз еттіңіз?
React 19 туралы не білесіз? React 18-ге қарағанда қандай өзгерістер болды?
JavaScript-те сілтеме түрлері мен примитивтер: олар қалай ерекшеленеді, әрқайсысын тізімдеңіз.
import React, { useState, useEffect, useRef, useContext, useReducer, useMemo } from 'react'; const someFunc = (arr) => { return [...arr].sort((a, b) => a - b); }; const LazyInit = (props) => { const [arr, setArr] = useState(() => someFunc(props.arr)); const onClick = () => { setArr((prev) => prev.concat(prev.length + 1)) } return ( <> <button onClick={onClick}> Increment </button> <ul> {arr.map((n, index) => <li key={index}>{n}</li>)} </ul> </> ) } export default () => <LazyInit arr={[1, 2, 3]} />; --- Оң жақтағы әңгімеде талқыланатындар: - TypeScript-те генериктерді пайдалану: "<T extends object, K extends keyof T>" - Деректердің жол екенін тексеру үшін тип қорғаушыны пайдалану: "isString(data: unknown): data is string { ... }" - useState-ті функциямен пайдалану арқылы әр рендер кезінде қайта іске қосылуын болдырмау: ``` const [state, setState] = useState(getComplexData); // немесе const [state, setState] = useState(() => getComplexData()); ``` - useState-ке берілген функция тек бір рет компонент жүктелгенде орындалады. - 11-ші жолда prev.concat арқылы күйді тікелей өзгерту туралы ескерту. --- Техникалық тапсырма — React компонентінің кодын талдау және мүмкін болса түзету немесе оңтайландыру, әсіресе: - useState-ті дұрыс ленив инициализациялау. - Күйді тікелей өзгертуінен аулақ болу. - TypeScript генериктері мен тип қорғаушыларды түсіну. - Батырма басылғанда күйді дұрыс жаңарту.
функция createEmitter() { const events = new Map(); function on(event, handler) { if(!events.has(event)) { events.set(event, [handler]) return } events.get(event).push(handler) } function off(event, handler) { // TODO: удалить handler } function emit(event, payload) { // TODO: вызвать всех подписчиков event } return { on, off, emit }; } const bus = createEmitter(); const unsub1 = bus.on("order:created", (payload) => { console.log("handler1:", payload.id); }); const handler2 = (payload) => { console.log("handler2:", payload.id); } bus.on("order:created", handler2);
Іздеу үшін неге debounce, ал throttle емес?
TypeScript-пен қалай жұмыс істеп жатырсың? a: string, b: number, c: null, d: boolean өрістері бар Foo типі бар. Барлық кілттері Foo-дан алынған FooKeys типін жасау керек.
Логин мен құпиясөзді URL сұрау параметрлері арқылы жіберуде қандай қауіпсіздік мәселелерін көресіз?
Консоль.log не шығарады? (жабылу тапсырмасы: count айнымалысы және increment пен get әдістері бар createCounter функциясы, екі рет increment шақыру және get)
Массивте мың объект бар (сандық идентификаторлары бар пайдаланушылар), объектілер ретсіз. Бұл массив бойынша іздеу алгоритмінің күрделілігі қандай болады?
Рұқсатпен жұмыс істедіңіз бе? Оны қалай жүзеге асырғаныңыз туралы толығырақ айта аласыз ба?
Angular-мен қанша уақыт жұмыс істедіңіз?
Тапсырма: React-те кіру формасын жүзеге асыру.
Фуллстекпен айналысқаныңызға қарсы емессіз бе?
Пайдаланушы браузерге google.com енгізгенде, бірінші HTTP сұрауы қандай әдіспен серверге жіберіледі?
Практикада қай жерде шексіз Promise-ге тап болуға болады? (жарыс: веб-конференциялар, камера мен микрофонға қатынау сұраулары арқылы navigator.mediaDevices.getUserMedia)