Skip to main content

Angular 9 Interview Questions and Answers - A Complete Guide Book

What Is Angular? What's New in Angular 9?
What Are Differences in Angular 9 and Angular 8? List of All Angular FAQs
What Are Components in Angular? What Is Angular Modules?
What Are Angular Directives? What Is Dependency Injection (DI)?
What Is Pipe? Types of Angular Pipe? What Is Routing and Navigation?
What Is Angular Services? What's Angular Elements?
What Is Service Workers? Types? What Is HttpClient?
Angular Security? What Is Angular Testing?
Angular Cookies? What Is Form, Template, and Validations?

What Is Angular?
Angular is the most popular web development framework for developing mobile apps as well as desktop applications.

The angular framework is also utilized in the cross-platform mobile development called IONIC and so it is not limited to web apps only.

Angular is an open source framework written and maintained by the angular team at Google and the Father of Angular is Misko Hevery.

Misko Hevery - Agile Coach at Google, Attended Santa Clara University and Lives in Saratoga, CA.

Angular is written in TypeScript and so it comes with all the capabilities that typescript offers.
You don’t worry about the TypeScript versions. The compiler manages to the versioning related problems and Angular team working with Traceur compiler team to provide the support to build some extensions.

What's New in Angular 9?
Angular 9 is the smaller, faster, and easier to use and it will be making Angular developers life easier. The fully version of Angular 9 are released (October/November 2019).

Added Angular 9 Features -
1.      Added undecorated classes migration schematic in the core.
2.      The formControlName also accepts a number in the form
3.      Now allow selector-less directives as base classes in View Engine in the compiler.
4.      Added support selector-less directive as base classes in Ivy and also make the Ivy compiler the default for ngc.
5.      Convert all ngtsc diagnostics to ts.Diagnostics
6.      bazel: support ts_library targets as entry-points for ng_package.
7.      core: add dynamic queries schematic.
8.      core: Mark TestBed.get as deprecated.
9.      ivy: expose helper and also support ng-add in localize package.
10.  ivy: i18n – add syntax support for $localize metadata block.
11.  ivy: i18n – reorganize entry-points for better reuse.
12.  language-service: enable logging on TypeScriptHost.
13.  language-service: provide diagnostic for invalid templateUrls.
14.  language-service: provide diagnostics for invalid styleUrls.


core: TestBed.get function is marked as deprecated, use TestBed.inject instead.

Performance Improvements :

  1. Binding update benchmark and also convert all node-based benchmark to use a testing harness.
  2. Avoid megamorphic reads during property binding.
  3. Avoid repeated lview reads in pipe instructions.
  4. Avoid repeated LView reads in property instructions.
  5. Avoid unnecessary DOM reads in styling instructions.
  6. Initialise TNode inputs / outputs on the first creation pass for the Ivy.
  7. limit TNode.outputs reads for the ivy.
8. The language-service, keep analyzedModules cache when source files don't change.

It looks like -
describe('TypeScriptServiceHost', () => {
  it('should not clear caches when external template changes', () => {
    const tsLSHost = new MockTypescriptHost(['/app/main.ts'], toh);
    const tsLS = ts.createLanguageService(tsLSHost);
    const ngLSHost = new TypeScriptServiceHost(tsLSHost, tsLS);
    const oldModules = ngLSHost.getAnalyzedModules();
    tsLSHost.override('/app/', '<div></div>');
    const newModules = ngLSHost.getAnalyzedModules();


What Are Components in Angular?
Components are the most basic building block of a UI in Angular applications and it controls views (HTML/CSS). They also communicate with other components and services to bring functionality to your applications.

Technically components are basically TypeScript classes that interact with the HTML files of the components, which get displayed on the browsers.

The component is the core functionality of Angular applications but you need to know to pass the data into the components to configure them.

Angular applications must have a root component that contains all other components.

Components are created using a @Component decorator that is part of @angular/core module.

You can create your own project using Angular CLI, this command allows you to quickly create an Angular application like - generate components, services, pipes, directive, classes, and modules, and so on as per your requirements.

Explore in detail about Angular Components

What Is Modules?
The NgModule is a TypeScript class marked by the @NgModule decorator.

The module is a class and works with the @NgModule decorator function and also takes a metadata object that tells Angular how to compile and run module code.

The Angular module helps you to organize an application into associative blocks of functionality.

An angular module represents a core concept and plays a fundamental role in structuring Angular applications.

The NgModule is used to simplify the ways you define and manage the dependencies in your applications and also you can consolidate different components and services into associative blocks of functionality.

Every Angular application should have at least one module and it contains the components, service providers, pipes and other code files whose scope is defined by the containing NgModule.

The purpose of the module is to declare everything you create in Angular and group them together.

Explore in detail about Angular module

What Are Angular Directives?
Angular Directive is a TypeScript class which is declared as a @directive decorator.

The directives allow you to attach behavior to DOM elements and the @directive decorator provide you an additional metadata that determines how directives should be processed, instantiated, and used at run-time.

Explore in detail about Angular Directives

What Is Dependency Injection (DI)?
Dependency Injection is a powerful pattern for managing code dependencies. DI is a way to create objects that depend upon other objects.

Angular has its own DI framework pattern, and you really can't build an Angular application without Dependency injection (DI).

A DI system supplies the dependent objects when it creates an instance of an object.

Explore in detail about Angular Dependency Injection (DI)

What Is Angular Pipe?
Pipes transform displayed values within a template.

Use the @Pipe annotation to declare that a given class is a pipe. A pipe class must also implement a PipeTransform interface.
The @Pipe decorator allows you to define the pipe name that is globally available for use in any template in the across Angular apps.

Pipe class implements the “PipeTransform” interfaces transform method that accepts an input value and returns the transformed result.
There will be one additional argument to the transform method for each parameter passed to the pipe.

Explore in detail about Angular Pipes Decorator

What Is runGuardsAndResolvers function?

This option means guards and resolvers will ignore changes when a provided predicate function returns `false`. This supports use cases where an application needs to ignore some param updates but not others.

For example, changing a sort param in the URL might need to be ignored, whereas changing the `project` param might require re-run of guards and resolvers.

What Is “typeof checks” in Angular?
How Performance Improvements on the core in Angular?

When testing whether `value` is an object, use the ideal sequence of strictly not equal to `null` followed by `typeof value === 'object'` consistently. Specifically, there's no point in using double equal with `null` since `undefined` is ruled out by the `typeof` check.

Also avoid the unnecessary ToBoolean check on `value.ngOnDestroy` in `hasOnDestroy()`, since the `typeof value.ngOnDestroy === 'function'` will only let closures pass and all closures are truish (with the notable exception of `document.all`, but that shouldn't be relevant for the `ngOnDestroy` hook)

How to restore the whole object when navigating back to a page managed by Angular Router in Angular?

This feature adds a few capabilities.
First, when a `popstate` event fires the value of `history.state` will be read and passed into `NavigationStart`. In the past, only the `navigationId` would be passed here.

Additionally, `NavigationExtras` has a new public API called `state` which is any object that will be stored as a value in `history.state` on navigation.
For example, the object `{name: 'anil'}` will be written to `history.state` here: -`router.navigateByUrl('/simple', {state: {name: 'anil'}});`

What Is the Navigation Type Available during Navigation in the Angular Router?
What Is Bazel?

Google open sourced the software responsible for building most of our projects under the name Bazel. Bazel is a powerful tool which can keep track of the dependencies between different packages and build targets.

What Are the features of Bazel?

Bazel is independent of the tech stack.
It has a smart algorithm for determining the build dependencies

What Are the Angular 9 Best practices?

  1. Don't modify your copy of Angular
  2. Avoid Angular APIs marked in the documentation as “Security Risk.”
  3. Preventing cross-site scripting (XSS)
  4. Keep current with the latest Angular library releases.
  5. Check the Angular log for security-related updates in the regularly.
Remember, whether a value is safe depends on context, so choose the right context for your intended use of the value.

Normally, Angular automatically sanitizes the URL, disables the dangerous code, and in development mode, logs this action to the console.

What Are the Bootstrapping of Angular 9?
  1. Do put bootstrapping and platform logic for the app in a file named main.ts.
  2. Do include error handling in the bootstrapping logic.
  3. Avoid putting app logic in main.ts. Instead, consider placing it in a component or service.
Example looks like -
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule }              from './app/app.module';

  .then(success => console.log(`Bootstrap success`))

  .catch(err => console.error(err));

For more Interview Questions in detail - Angular security…

By Anil Singh | Rating of this article (*****)

Popular posts from this blog

List of Countries, Nationalities and their Code In Excel File

Download JSON file for this List - Click on JSON file    Countries List, Nationalities and Code Excel ID Country Country Code Nationality Person 1 UNITED KINGDOM GB British a Briton 2 ARGENTINA AR Argentinian an Argentinian 3 AUSTRALIA AU Australian an Australian 4 BAHAMAS BS Bahamian a Bahamian 5 BELGIUM BE Belgian a Belgian 6 BRAZIL BR Brazilian a Brazilian 7 CANADA CA Canadian a Canadian 8 CHINA CN Chinese a Chinese 9 COLOMBIA CO Colombian a Colombian 10 CUBA CU Cuban a Cuban 11 DOMINICAN REPUBLIC DO Dominican a Dominican 12 ECUADOR EC Ecuadorean an Ecuadorean 13 EL SALVADOR

39 Best Object Oriented JavaScript Interview Questions and Answers

Most Popular 37 Key Questions for JavaScript Interviews. What is Object in JavaScript? What is the Prototype object in JavaScript and how it is used? What is "this"? What is its value? Explain why "self" is needed instead of "this". What is a Closure and why are they so useful to us? Explain how to write class methods vs. instance methods. Can you explain the difference between == and ===? Can you explain the difference between call and apply? Explain why Asynchronous code is important in JavaScript? Can you please tell me a story about JavaScript performance problems? Tell me your JavaScript Naming Convention? How do you define a class and its constructor? What is Hoisted in JavaScript? What is function overloadin

React | Encryption and Decryption Data/Text using CryptoJs

To encrypt and decrypt data, simply use encrypt () and decrypt () function from an instance of crypto-js. Node.js (Install) Requirements: 1.       Node.js 2.       npm (Node.js package manager) 3.       npm install crypto-js npm   install   crypto - js Usage - Step 1 - Import var   CryptoJS  =  require ( "crypto-js" ); Step 2 - Encrypt    // Encrypt    var   ciphertext  =  CryptoJS . AES . encrypt ( JSON . stringify ( data ),  'my-secret-key@123' ). toString (); Step 3 -Decrypt    // Decrypt    var   bytes  =  CryptoJS . AES . decrypt ( ciphertext ,  'my-secret-key@123' );    var   decryptedData  =  JSON . parse ( bytes . toString ( CryptoJS . enc . Utf8 )); As an Example,   import   React   from   'react' ; import   './App.css' ; //Including all libraries, for access to extra methods. var   CryptoJS  =  require ( "crypto-js" ); function   App () {    var   data

25 Best Vue.js 2 Interview Questions and Answers

What Is Vue.js? The Vue.js is a progressive JavaScript framework and used to building the interactive user interfaces and also it’s focused on the view layer only (front end). The Vue.js is easy to integrate with other libraries and others existing projects. Vue.js is very popular for Single Page Applications developments. The Vue.js is lighter, smaller in size and so faster. It also supports the MVVM ( Model-View-ViewModel ) pattern. The Vue.js is supporting to multiple Components and libraries like - ü   Tables and data grids ü   Notifications ü   Loader ü   Calendar ü   Display time, date and age ü   Progress Bar ü   Tooltip ü   Overlay ü   Icons ü   Menu ü   Charts ü   Map ü   Pdf viewer ü   And so on The Vue.js was developed by “ Evan You ”, an Ex Google software engineer. The latest version is Vue.js 2. The Vue.js 2 is very similar to Angular because Evan You was inspired by Angular and the Vue.js 2 components looks like -

Encryption and Decryption Data/Password in Angular

You can use crypto.js to encrypt data. We have used 'crypto-js'.   Follow the below steps, Steps 1 –  Install CryptoJS using below NPM commands in your project directory npm install crypto-js --save npm install @types/crypto-js –save After installing both above commands it looks like  – NPM Command  1 ->   npm install crypto-js --save NPM Command  2 ->   npm install @types/crypto-js --save Steps 2  - Add the script path in “ angular.json ” file. "scripts" : [                "../node_modules/crypto-js/crypto-js.js"               ] Steps 3 –  Create a service class “ EncrDecrService ” for  encrypts and decrypts get/set methods . Import “ CryptoJS ” in the service for using  encrypt and decrypt get/set methods . import  {  Injectable  }  from   '@angular/core' ; import   *   as   CryptoJS   from   'crypto-js' ; @ Injectable ({    providedIn:   'root' }) export   class   EncrDecrS