P
prepair.app
Comenzar entrevista →
EnglishУкраїнськаРусскийDeutsch
🅰️

Preguntas de entrevista Angular

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.

Junior · sin experiencia / menos de 1 añoMiddle · 2–4 años de experienciaSenior · 5+ años de experiencia

Qué preguntan

Dependency Injection
RxJS y Observables
Change Detection
Módulos y componentes
Formularios reactivos
TypeScript

8 preguntas reales con respuestas

Cada pregunta viene con una respuesta modelo con la que puedes comparar la tuya.

1

¿Cómo funciona Dependency Injection en Angular? ¿Qué son los providers?

Respuesta

Angular tiene un árbol jerárquico de injectors: una solicitud de una dependencia sube desde el injector del componente hasta la raíz. Un provider le dice al injector cómo crear el token — useClass, useValue, useFactory, o useExisting. Proveer un servicio en root da un singleton para toda la app; proveerlo en un componente crea una instancia nueva por instancia de componente, que es cómo limitas estado a una feature.

2

¿Cuál es la diferencia entre un Observable y una Promise?

Respuesta

Una Promise es un único valor futuro que empieza a ejecutarse inmediatamente y no se puede cancelar. Un Observable es un stream de cero o más valores, es lazy hasta que se suscribe, se puede cancelar desuscribiéndose, y se puede transformar con operadores como debounce, retry, o switchMap. Para llamadas HTTP el beneficio práctico es la cancelación — un typeahead puede descartar el request anterior cuando el usuario sigue escribiendo.

3

Explica change detection. ¿En qué se diferencia OnPush de Default?

Respuesta

Change detection recorre el árbol de componentes después de eventos, timers, o respuestas HTTP y re-renderiza cualquier binding que cambió. Default revisa cada componente en cada ciclo. OnPush revisa un componente solo cuando una referencia de input cambia, un evento se dispara dentro de él, o un async pipe emite — por eso OnPush requiere datos inmutables: mutar un objeto in place no cambia su referencia y la vista no se actualizará.

4

¿Qué son map, switchMap y mergeMap? ¿Cuál es la diferencia?

Respuesta

map transforma cada valor emitido. switchMap y mergeMap aplanan un observable interno: switchMap cancela la suscripción interna anterior cuando llega un valor nuevo, mergeMap las corre todas concurrentemente. Usa switchMap para búsqueda o navegación donde solo importa el último resultado, mergeMap cuando cada request debe completarse — y concatMap cuando el orden importa.

5

¿Qué es ngOnInit y en qué se diferencia del constructor?

Respuesta

El constructor corre cuando la clase se instancia, antes de que Angular haya seteado cualquier binding de input, así que los inputs todavía son undefined ahí. ngOnInit corre después de la primera pasada de binding, por eso la inicialización que depende de inputs pertenece ahí. La convención es que los constructores solo reciben dependencias inyectadas y ngOnInit hace el trabajo real de setup.

6

¿Cuál es la diferencia entre formularios template-driven y reactive?

Respuesta

Los formularios template-driven construyen el modelo implícitamente desde directivas en el template y convienen para casos simples. Los formularios reactive definen un FormGroup en la clase del componente, lo que hace la validación, controles dinámicos, y testing explícitos y type-safe. Reactive es la recomendación por defecto para cualquier cosa más allá de un login, porque el estado del formulario vive en código donde puedes razonarlo.

7

¿Cómo evitas fugas de memoria con Observables?

Respuesta

Una suscripción que nunca se cierra mantiene vivo su callback y scope capturado después de que el componente se destruye. La solución más limpia es el async pipe, que se suscribe y desuscribe automáticamente. Si no, usa takeUntilDestroyed, o colecciona suscripciones y desuscríbete en ngOnDestroy — el fallo común es un stream de larga vida como un evento de router o un websocket.

8

¿Qué es un pipe? ¿Cómo creas uno personalizado?

Respuesta

Un pipe transforma un valor para mostrarlo en un template, manteniendo el formato fuera de la clase del componente. Creas uno con el decorador @Pipe y un método transform. Los pipes son puros por defecto, lo que significa que Angular los reevalúa solo cuando la referencia del input cambia, lo que los mantiene baratos — marcar un pipe como impuro lo corre en cada ciclo de change detection y debería ser el último recurso.

🦎

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.

Practicar entrevista de Angular Frontend →
Gratis · 3 entrevistas al mes

Vale la pena leer

Todos los artículos →

Otras especializaciones

🔍Manual QA🤖QA AutomationJava Backend🐍Python Backend🐘PHP Backend🦫Go Backend🟢Node.js Backend💎Ruby on Rails🔷C++🟨JavaScript⚛️React Frontend💚Vue FrontendNext.js🍏iOS (Swift)🟩Android (Kotlin)⚙️DevOps / SRE🗄️Data Engineer📈Business Analyst🎯Product Manager📋Project Manager🎨UI/UX Designer📣Marketing