Dobio si kod za reviziju — šta nije optimalno ovde?
Frontend
Ispričaj mi o React Hook Form: osnovne mogućnosti, kako se koristi, kako funkcioniše validacija?
Šta se dešava ako se promeni tip komponente? Da li će isti ključ sačuvati stanje?
Šta će se desiti ako ne navedete niz zavisnosti u useEffect? Ako dodate count u niz zavisnosti i kliknete na dugme, da li će se pokrenuti cleanup funkcija?
// Metoda findUnique se primenjuje na niz, koji vraća novi niz sa jedinstvenim elementima, // odnosno onima koji se pojavljuju samo jednom u originalnom nizu, u istom redosledu. // Potrebno je implementirati metodu findUnique tako da radi kao obična metoda niza [10, 5, 10, 1, 6, 6, 7, 9, 9, 10].findUnique(); // [5, 1, 7]
Šta je zatvaranje u JavaScript-u? Gde se koristi u praksi?
Pored metoda i tipova ključeva, šta još ima Map, a nema objekat?
const SomeElement = ({ hasData }) => { if (hasData) { return <div> <DataElement /> <SomeImportantElement /> </div> } return <div> <SomeImportantElement /> </div> }
import React, { useState, useEffect, useRef, useContext, useReducer, useMemo, me 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}> Увеличи </button> <ul> {arr.map((n, index) => <li key={index}>{n}</li>)} </ul> </> ) } export default () => <LazyInit arr={[1, 2, 3]} />;
Dajte primer zatvaranja. Da li ste koristili zatvaranja u React-u?
Čime se razlikuju tipovi any i unknown u TypeScript-u?
const a = {} a[1] = 'test' pre ( ... )
Чиме се разликује sessionStorage од localStorage?
setTimeout(() => { console.log("timeOut"); }, 0) console.log(1); new Promise(resolve => { console.log("Promise"); setTimeout(() => { console.log("777"); resolve() }, 0) }).then(() => { console.log("then1"); }) .then(console.log('tratata')) .then(() => console.log("then2"); }) console.log(4); setTimeout(() => { console.log("timeOut2"); }, 0)
Objasni šta je Event Loop. Šta pripada mikrotaskovima, a šta makrotaskovima?
const doSomething = (ms) => { return new Promise((resolve, reject) => { setTimeout(() => { if (Math.random() <= 0.5) { reject("error"); } else { resolve(ms); } }, ms); }); }; const getDelay = () => { let rand = 1000 + Math.random() * 2000; return Math.floor(rand); }; const p1 = doSomething(getDelay()); const p2 = doSomething(getDelay()); const p3 = doSomething(getDelay()); const p4 = doSomething(getDelay());
const func = obj.sayHi() const boundFuns = func.bind(obj) boundFuns() ------------------- const submit = (el) => () => { log(el); } arr.map(el => <button onClick={submit(el)}/>) const param = useMemo(() => a + b) return <Child value={param} />
Zašto je potreban tip unknown u TypeScript-u? Kako se može suziti tip?
Ispričaj mi o kolekcijama Map i Set u JavaScriptu — šta znaš o njima?
import React, { useState, useEffect, useRef, useContext, useReducer, useMemo } from 'react'; export default Effects = () => { const [count, setCount] = useState(0); useLayoutEffect(() => console.log("сваки рендер 1")); console.log("сваки рендер 2"); useEffect(() => console.log("сваки рендер 3")); return ( <> <button onClick={() => setCount((prevProps) => ++prevProps)}> Увеличи </button> </> ) }