Una pregunta útil JavaScript debe revelar un modelo mental, no recompensar una frase memorizada. Use estos grupos para practicar explicando lo que sucede, por qué sucede, y cómo lo verificaría.

01

Comportamiento del idioma

  • ¿Cómo afecta el alcance léxico y la cadena de alcance a un cierre?
  • ¿Cuándo depende `this` del lugar desde el que se llama y cuándo no?
  • ¿Qué errores prácticos pueden introducir coacción implícita?
  • ¿Cómo apoyan los prototipos a la delegación?
  • ¿Qué cambios cuando se evalúa un módulo más de una vez?
  • ¿Cómo afectan los descriptores de propiedades a una API?
  • ¿Cuándo sería útil un símbolo?
  • ¿Cómo difieren las copias superficiales y profundas?
  • ¿Qué hace que dos valores sean iguales en diferentes operaciones de igualdad?
  • ¿Cómo explicarías las zonas muertas temporales?
02

Async JavaScript y el navegador

  • Describe una iteración del bucle de eventos que incluya una tarea y microtareas en cola.
  • ¿Cómo puede una UI cancelar una solicitud que ya no es relevante?
  • ¿Qué causa un rechazo de la promesa sin manejar?
  • ¿Cómo limitarías la concurrencia para un lote de solicitudes?
  • ¿Cómo pueden compartir dos llamadas una solicitud en vuelo?
  • ¿Cuándo es `Promise.allSettled` más útil que `Promise.all`?
  • ¿Cómo evitas que las respuestas desactualizadas sustituyan a los datos recientes?
  • ¿Qué debe pasar con una entrada de caché después de que el cargador rechace?
  • ¿Cómo se comportan los temporeros en una pestaña inactiva?
  • ¿Dónde puede aparecer la retropresión en un sistema de frontend?
03

Aplicación y verificación

  • Ejecutar el debounce con cancelación.
  • Implementar el acelerador y explicar su comportamiento líder y persistente.
  • Crea un emisor de eventos que permita cancelar las suscripciones.
  • Construir un caché de solicitud con TTL y deduplicación en vuelo.
  • Datos anidados aplanados sin mutar la entrada.
  • Escribe un ayudante de reingreso con una política de parada explícita.
  • Implementar un pequeño programador de tareas con un límite de concurrencia.
  • Normalizar los datos del servidor en un mapa de entidad.
  • Crear un ayudante de memoización y describir sus límites de invalidación.
  • Pruebas de diseño para una función que depende del tiempo.
04

Debate de alto nivel

  • ¿Dónde debería la validación de tiempo de ejecución sentarse en un frontend tipo?
  • ¿Cómo evolucionas una API compartida de clientes sin romper consumidores?
  • ¿Qué debe ser observable en una capa de solicitud?
  • ¿Cómo investigaría una larga tarea en producción?
  • ¿Cuándo se justifica un trabajador web?
  • ¿Cómo afectan los límites del paquete el comportamiento del tiempo de ejecución?
  • ¿Cómo diseñarías una degradación controlada?
  • ¿Qué supuestos de seguridad nunca deben vivir sólo en el código del cliente?
  • ¿Cómo se hace que el manejo de errores sea consistente sin contexto de ocultación?
  • ¿Qué restricciones del navegador cambiaría su arquitectura?
05

Cómo practicar las preguntas

  • Respuesta en tres pases: mecanismo, ejemplo concreto y desvío.
  • Escriba código sólo después de indicar el contrato y los casos de borde importantes.
  • Verifique un caso de éxito, un caso de límite y un camino de fracaso.
  • Grabar explicaciones débiles como temas de práctica en lugar de memorizar scripts más largos.
  • Terminar nombrando qué evidencia cambiaría tu decisión.
Referencias

Fuentes primarias

Revisión editorial
Las afirmaciones sobre el producto se han contrastado con su funcionamiento actual. ¿Has encontrado un problema? Envía una corrección.