¿Qué métodos estáticos de Promise conoces? Háblame de ellos.
Frontend
Escribe una función getUserProfile que tome un userId como argumento y obtenga el perfil del usuario desde el endpoint de la API "[link] La función debe registrar el perfil del usuario si la solicitud es exitosa, y registrar un mensaje de error si la solicitud falla.
import React, { useState, useEffect, useLayoutEffect } from 'react'; export default () => { const [count, setCount] = useState(0); useLayoutEffect(() => console.log("cada renderizado 1")); console.log("cada renderizado 2"); useEffect(() => console.log("cada renderizado 3")); return ( <button onClick={() => setCount((prevProps) => ++prevProps)}> Incrementar </button> ); } // montar -> cada renderizado 2, cada renderizado 1, cada renderizado 3 // actualizar -> cada renderizado 2, cada renderizado 1, cada renderizado 3 // desmontar 4
¿Qué es un Set? ¿Qué podemos pasar como argumento cuando llamamos a new Set?
¿Se elevan let y const (hoisting)? ¿Qué sucede cuando se les accede antes de su declaración?
const S = { id: 1, name: "Ivan", age: "39", tel: [phone] }; function getParam(obj, key) { return obj[key]; } getParam(S, "tel"); getParam(S, "job");
Escribe una implementación abstracta del componente Child con memoización usando React.memo. ¿Qué segundo argumento acepta React.memo?
Escribe qué sucederá en el primer renderizado: en qué orden aparecerán los console.log. ¿Qué pasará después de hacer clic?
¿Qué es WeakSet?
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]} />; --- La conversación a la derecha discute: - Uso de TypeScript con genéricos: "<T extends object, K extends keyof T>" - Verificación si los datos son una cadena con un guardia de tipo: "isString(data: unknown): data is string { ... }" - Uso de useState con una función para evitar re-ejecutar en cada render: ``` const [state, setState] = useState(getComplexData); // o const [state, setState] = useState(() => getComplexData()); ``` - La función pasada a useState solo se ejecutará una vez al montar el componente. - Advertencia sobre mutar el estado directamente en la línea 11 con prev.concat. --- La tarea técnica es analizar y posiblemente arreglar u optimizar el código del componente React, enfocándose especialmente en: - La inicialización perezosa adecuada del estado con useState. - Evitar la mutación directa del estado. - Entender los genéricos de TypeScript y los guardias de tipo. - Asegurar que el componente actualice el estado correctamente al hacer clic en el botón.
¿Qué es un cierre?
Hay tres fuentes de datos que devuelven la misma información. ¿Cómo obtener la respuesta de la más rápida?
¿Cuál es la diferencia entre Map y WeakMap?
Cuéntame sobre el hook useState en React.
¿Cómo se crean funciones en JavaScript? ¿Cuáles son las formas de crear funciones y en qué se diferencian?
¿Por qué no se puede trabajar con un constructor new en funciones de flecha?
¿Qué tipos utilitarios de TypeScript utilizas en tu trabajo? Habla sobre Record, Pick, Omit, Partial, Required, Parameters, Exclude, Extract.