Angular 8 Interview Question
Angular 8 Interview Question
The latest features introduced during the Angular 8 release candidate stage
include:
1. Smaller bundles, CLI APIs, and alignment with the ecosystem
2. AngularJs Migration Improvements
3. Route Configurations use Dynamic Imports
4. Differential Loading by Default
5. Web Worker Support
6. New Deprecation Guide
7. Builder APIs in the CLI
8. Workspace APIs in the CLI
9. Ivy & Bazel
10. Ivy aims to change this. Compared with the current Angular View Engine, Ivy
provides the following benefits.
i. Generated code that is easier to read and debug at runtime
ii. Faster re-build time
iii. Improved payload - applications size improvements
iv. Improved template type checking
v. Great backward compatibility
Must be:-
1. Angular >= 7.0.0
2. Angular CLI >= 7.0.0
This release contains the following added and Improvements over the entire Angular
platform including:-
=> Added Support for TypeScript 3.2
=> Added a Navigation Type Available during Navigation in the Router
=> Added pathParamsOrQueryParamsChange mode for runGuardsAndResolvers in the Router
=> Allow the passing state to router link Directives in the Router
=> Allow the passing state to NavigationExtras in the Router
=> Restore the whole object when navigating back to a page managed by Angular
Router
=> Added support for SASS
=> Resolve generated Sass/Less files to .css inputs
=> Added functionality to mark a control and its descendant controls as touched: -
add markAllAsTouched () to AbstractControl
=> Added ng-new command that builds the project with Bazel
=> Use image based cache for windows BuildKite
=> Export NumberValueAccessor & RangeValueAccessor directives
=> Now the Performance Improvements on the core, more consistent about �typeof
checks�: -
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)
=> Restore the whole object when navigating back to a page managed by Angular
Router:-
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 `{foo: 'bar'}` will be written to `history.state` here:
-`router.navigateByUrl('/simple', {state: {foo: 'bar'}});`
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.
Q.#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.
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 click�
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.
Angular has its own DI framework pattern, and you really can't build an Angular
application without Dependency injection (DI).
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.
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.
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.
Q.#How to restore the whole object when navigating back to a page managed by
Angular Router in Angular 8?
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'}});`
Q.#What Is the Navigation Type Available during Navigation in the Angular 8 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.
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.
An attacker can insert vulnerability scripts and malicious code in your web
applications.
The Cross Site Scripting (XSS) attacks are common on web browsers and it carried
out on websites around 84% (approximately).
An attacker can insert vulnerability scripts and malicious code in your web
applications.
The Angular treats all values as untrusted by default. This is the great advantages
of Angular.