Angular Interview Topics
Core Concepts & Architecture
Components & Component Communication
- Smart vs Presentational components
- Component lifecycle hooks and their use cases
- Input/Output decorators and EventEmitter
- Content projection (ng-content)
- ViewChild/ViewChildren and ContentChild/ContentChildren
- Dynamic component loading
- Component inheritance patterns
Change Detection
- Zone.js and how change detection works
- ChangeDetectionStrategy.OnPush and performance optimization
- Manual change detection triggering
- NgZone service and runOutsideAngular
- Handling large lists with trackBy
- Virtual scrolling for performance
Dependency Injection & Services
- Hierarchical injector system
- Provider scopes and ModuleWithProviders
- useClass, useValue, useFactory, useExisting
- Resolution modifiers (@Optional, @Self, @SkipSelf)
- Tree-shakeable providers with providedIn
- Service lifecycle and initialization
State Management
- NgRx architecture and core concepts
- Effects for side effects management
- Selectors and memoization
- Entity pattern for data management
- NGRX vs Services + BehaviorSubject
- State persistence strategies
Routing & Navigation
- Route guards and resolvers
- Child routes and lazy loading
- Route parameters and data passing
- Navigation events and hooks
- Custom route reuse strategies
- Preloading strategies
Advanced Topics
- AOT compilation benefits
- Tree shaking and dead code elimination
- Lazy loading and preloading strategies
- Memory leak prevention
- Bundle size optimization
- Server-side rendering (Angular Universal)
Testing Strategies
- Unit testing components and services
- Integration testing with TestBed
- E2E testing with Protractor/Cypress
- Mocking dependencies and HTTP requests
- Testing async operations
- Coverage and test organization
- Template-driven vs Reactive forms
- Custom form controls
- Complex validation scenarios
- Dynamic form generation
- Form Arrays and nested forms
- Custom validators and async validation
RxJS Integration
- Common operators and their use cases
- Subject types and behavior
- Error handling strategies
- Subscription management
- Hot vs Cold observables
- Custom operators
Security
- XSS prevention and sanitization
- CSRF protection
- Content Security Policy
- Route guards for authentication
- Secure HTTP communication
- Common security pitfalls
Best Practices
Architecture & Organization
- Feature modules and shared modules
- Core module patterns
- Scalable folder structure
- Smart/dumb component pattern
- Service organization strategies
- State management patterns
Error Handling
- Global error handling
- Error boundaries
- Retry strategies
- Error logging and monitoring
- User feedback patterns
- Graceful degradation
- Change detection optimization
- Memory management
- Lazy loading strategies
- Caching mechanisms
- Bundle optimization
- Runtime performance
Development Workflow
- Angular CLI usage
- Build configuration
- Environment management
- CI/CD considerations
- Version upgrade strategies
- Development tools and debugging
Accessibility & Internationalization
- ARIA attributes and roles
- Keyboard navigation
- Screen reader compatibility
- i18n implementation
- RTL support
- Accessibility testing