Angular interviews test your understanding of components, dependency injection, change detection, RxJS and application structure. Some teams still maintain AngularJS (version 1.x) apps, so be ready to explain the differences too.
Core Concepts
What is the difference between Angular and AngularJS?
AngularJS (1.x) is the original JavaScript framework, built around controllers, $scope and two-way data binding. Angular (2 and later) is a complete rewrite in TypeScript, built around components, a hierarchical dependency injection system and a different change-detection model. AngularJS reached end of life in 2021.
What is a component?
A component is a class with a decorator that links it to a template and styles. It controls a piece of the UI and communicates with parents and children through inputs and outputs.
What are standalone components?
Standalone components declare their own dependencies in the component itself instead of belonging to an NgModule. They simplify application structure and are the recommended default in recent Angular versions.
How does dependency injection work in Angular?
Classes declare the services they need in their constructor (or with the inject function), and Angular’s injector provides instances. Services can be provided at the root level (one shared instance) or at a component level (a new instance for that part of the tree).
Change Detection and Performance
How does change detection work?
Angular checks component bindings after events such as user input, timers and HTTP responses, and updates the DOM when values change. With the OnPush strategy, a component is only checked when its inputs change, an event originates inside it, or you mark it for checking, which improves performance.
What are signals?
Signals are reactive values that notify Angular when they change, allowing more fine-grained updates. Computed signals derive values from other signals, and effects run side effects when signals change.
RxJS and Data
What is an Observable?
An Observable is a stream of values over time. Angular uses Observables for HTTP requests, forms and routing events. You subscribe to receive values and should unsubscribe (or use the async pipe) to avoid memory leaks.
switchMap vs mergeMap?
switchMap cancels the previous inner Observable when a new value arrives, which suits search-as-you-type. mergeMap runs inner Observables concurrently and keeps them all, which suits independent parallel requests.
Routing and Forms
What are route guards?
Guards decide whether navigation can happen, for example checking that a user is logged in before loading a page, or confirming unsaved changes before leaving.
Template-driven vs reactive forms?
Template-driven forms define most logic in the template and suit simple forms. Reactive forms define the form model in the component class, which makes complex validation and testing easier.
How to Prepare
- Build a small app with routing, a service, an HTTP call and a reactive form.
- Be able to explain OnPush change detection and when to use it.
- Review general software engineer interview questions.
Get Help in the Interview Itself
Preparation gets you most of the way. For the interview itself, ApplyQuick Interview Copilot listens to each question and suggests a structured answer based on your resume and the job description, on Zoom, Microsoft Teams, Google Meet or a phone call. You can also rehearse first with an AI mock interview. Every plan starts with a 7-day free trial.



