Middle Angular Frontend — Preguntas de entrevista Angular
Middle · 2–4 años de experiencia
Las entrevistas de Angular cubren dependency injection, RxJS, change detection, y TypeScript — el framework es opinado, así que las preguntas testean si entiendes su maquinaria. Aquí están las más comunes con respuestas modelo. Middle: comprensión más profunda, optimización y situaciones reales de trabajo.
Pruébalo — sin cuenta necesaria
Preparando tu pregunta…
Temas para prepararte
✓Dependency Injection
✓RxJS y Observables
✓Change Detection
✓Módulos y componentes
✓Formularios reactivos
✓TypeScript
6 preguntas de nivel Middle con respuestas
1
¿Cómo funciona change detection, y qué cambia OnPush?
Respuesta
Por defecto Angular revisa cada componente en el árbol después de cualquier cosa que pudiera haber cambiado el estado. OnPush lo estrecha: el componente se revisa solo cuando una referencia de input cambia, un evento se dispara dentro de él, o un observable que usa vía async emite. Convierte una revisión de todo el árbol en una dirigida, que es la palanca de performance más grande en Angular.
2
¿Qué hace Zone.js y por qué Angular se está alejando de él?
Respuesta
Parchea las APIs async del navegador para que Angular sepa cuándo algo pudo haber cambiado y pueda correr change detection sin que se lo digas. El costo es que parchea todo y dispara revisiones para eventos que no cambiaron nada. Los signals dejan a un componente saber precisamente qué cambió, por eso zoneless es la dirección.
3
¿Qué es un signal y en qué se diferencia de un observable?
Respuesta
Un signal tiene un valor actual y notifica a los dependientes sincrónicamente cuando cambia — es estado. Un observable es un stream a través del tiempo y modela eventos. Los signals convienen para estado de componente y valores calculados; los observables todavía convienen para HTTP, websockets y cualquier cosa con operadores. Son complementarios en vez de un reemplazo.
4
¿Cuál es la diferencia entre `switchMap`, `mergeMap` y `concatMap`?
Respuesta
switchMap cancela la suscripción interna anterior cuando llega un valor nuevo — correcto para un typeahead, incorrecto para un guardado. mergeMap las corre todas concurrentemente en el orden en que terminen. concatMap las encola y preserva el orden. Elegir el equivocado es cómo una búsqueda muestra resultados obsoletos o dos guardados llegan fuera de orden.
5
¿Qué hace un interceptor y qué pertenece en uno?
Respuesta
Se sienta entre la app y HttpClient y puede modificar un request o una respuesta. Headers de auth, un id de correlación, una política de reintento global y convertir un 401 en un redirect todos pertenecen ahí, porque aplican a cada request y duplicarlos por servicio es cómo se olvida uno. La lógica de negocio no pertenece ahí.
6
¿Cómo haces lazy-load de una ruta y por qué importa?
Respuesta
Con loadComponent o loadChildren, que divide esa ruta en su propio chunk obtenido en la navegación. Importa porque el bundle inicial decide cuánto tarda la primera pantalla, y una sección de admin que nadie visita no debería estar en él. La verificación que lo mantiene honesto es mirar los tamaños de chunk compilados en vez de asumir.
🦎
Leer respuestas no es suficiente
En una entrevista real hablas bajo presión. Cam hace estas mismas preguntas, evalúa cada respuesta y muestra exactamente qué mejorar.