Promise-тің қандай статикалық әдістерін білесіз? Оларды туралы айтыңыз.
Frontend
Пайдаланушы профилін алу үшін userId аргументі ретінде қабылдайтын және оны API соңғы нүктесінен алатын getUserProfile функциясын жазыңыз. Егер сұрау сәтті болса, пайдаланушы профилін шығарыңыз, ал қате болса, қате туралы хабарды шығарыңыз.
Let және const (hoisting) шыға ма? Оларға жарияламас бұрын қол жеткізген кезде не болады?
import React, { useState, useEffect, useLayoutEffect } from 'react'; Экспорт бойынша әдепкі () => { const [count, setCount] = useState(0); useLayoutEffect(() => console.log("әр рендер 1")); console.log("әр рендер 2"); useEffect(() => console.log("әр рендер 3")); return ( <button onClick={() => setCount((prevProps) => ++prevProps)}> Арттыру </button> ); } // орнату -> әр рендер 2, әр рендер 1, әр рендер 3 // жаңарту -> әр рендер 2, әр рендер 1, әр рендер 3 // жою 4
Set деген не? New Set-ті шақырғанда қандай аргументтерді бере аламыз?
Бірінші рендер кезінде не болатынын жазыңыз — console.log-тар қандай тәртіппен шығады? Түймені басқаннан кейін не болады?
const S = { id: 1, name: "Ivan", age: "39", tel: [phone] }; function getParam(obj, key) { return obj[key]; } getParam(S, "tel"); getParam(S, "job");
Қаптау дегеніміз не?
WeakSet деген не?
React.memo арқылы мемоизацияланған Child компонентінің абстрактілі жүзеге асырылуын жазыңыз. React.memo екінші аргумент ретінде не қабылдайды?
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 генериктері мен тип қорғаушыларды түсіну. - Батырма басылғанда күйді дұрыс жаңарту.
Map пен WeakMap арасындағы айырмашылық қандай?
Бірдей ақпаратты қайтаратын үш деректер көзі бар. Ең жылдамынан жауапты қалай алуға болады?
Тікелей функцияда arguments аргументіне жүгінсеңіз, ол жерде не болады?
React-дегі useState хук туралы айта аласыз ба?
Тік бағытты функцияларды new конструкторы арқылы қолдануға болмайды, неге?
JavaScript-те функциялар қалай жасалады? Функцияларды жасау тәсілдері қандай және олар қалай ерекшеленеді?
Сіз жұмысында TypeScript-тің қандай утилитарлық типтерін қолданасыз? Record, Pick, Omit, Partial, Required, Parameters, Exclude, Extract туралы айтыңыз.