O let e o const (hoisting) são elevados? O que acontece ao acessá-los antes da declaração?
Frontend
O que é um Set? O que podemos passar ao chamar new Set como argumento?
Por que usar debounce e não throttle para pesquisa?
O que é um encerramento?
Escreva uma função getUserProfile que recebe um userId como argumento e busca o perfil do usuário no endpoint da API "[link] A função deve registrar o perfil do usuário se a busca for bem-sucedida, e registrar uma mensagem de erro se a busca falhar.
Que métodos estáticos do Promise conheces? Fala-me sobre eles.
import React, { useState, useEffect, useLayoutEffect } from 'react'; export default () => { const [count, setCount] = useState(0); useLayoutEffect(() => console.log("cada renderização 1")); console.log("cada renderização 2"); useEffect(() => console.log("cada renderização 3")); return ( <button onClick={() => setCount((prevProps) => ++prevProps)}> Incrementar </button> ); } // montagem -> cada renderização 2, cada renderização 1, cada renderização 3 // atualização -> cada renderização 2, cada renderização 1, cada renderização 3 // desmontagem 4
Escreva o que acontecerá na primeira renderização — em que sequência os console.log serão exibidos. O que acontecerá após o clique?
Escreva uma implementação abstrata do componente Child com memoização usando React.memo. Qual é o segundo argumento que o React.memo aceita?
O que é um WeakSet?
Qual é a diferença entre Map e WeakMap?
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}> Incrementar </button> <ul> {arr.map((n, index) => <li key={index}>{n}</li>)} </ul> </> ) } export default () => <LazyInit arr={[1, 2, 3]} />; --- A conversa à direita discute: - Uso do TypeScript com genéricos: "<T extends object, K extends keyof T>" - Verificação se os dados são uma string com um guarda de tipo: "isString(data: unknown): data is string { ... }" - Uso do useState com uma função para evitar re-execução a cada render: ``` const [state, setState] = useState(getComplexData); // ou const [state, setState] = useState(() => getComplexData()); ``` - A função passada ao useState será executada apenas uma vez na montagem do componente. - Aviso sobre mutação direta do estado na linha 11 com prev.concat. --- A tarefa técnica é analisar e possivelmente corrigir ou otimizar o código do componente React, com foco especial em: - Inicialização preguiçosa adequada do estado com useState. - Evitar mutação direta do estado. - Compreender os genéricos do TypeScript e os guardas de tipo. - Garantir que o componente atualize o estado corretamente ao clicar no botão.
Existem três fontes de dados que retornam a mesma informação. Como obter a resposta da mais rápida?
Fala-me sobre o hook useState no React.
Como são criadas funções em JavaScript? Quais são as formas de criar funções e como elas diferem?
Por que não se pode trabalhar com um construtor new em funções de seta?
Que tipos utilitários do TypeScript utilizas no teu trabalho? Fala sobre Record, Pick, Omit, Partial, Required, Parameters, Exclude, Extract.