48 Top AngularJS Interview Questions and Answers

Top AngularJS Interview Questions for Freshers and Experienced Professionals:

AngularJs is one of the most current web development frameworks around the world.

In almost every interview, you will have to struggle with fierce competition, in order to achieve high and get your dream job. Hence you should prepare yourself well in advance.

To support you in this journey, we’ve drawn a list of most frequently asked AngularJS interview questions along with the answers which your interviewer expects at the time of interview.

Read through our series of AngularJS tutorials for more knowledge of the concept. Protractor Tool for Testing of AngularJS Apps was explained in our previous tutorial.

AngularJS Interview Questions

Most Frequently asked AngularJS Interview Questions and Answers

Given below is a list of the top interview questions and answers on AngularJS to help anyone clear an interview successfully.

Let's Explore!!

Q #1) What do you understand by AngularJS?

Answer: AngularJS is a JavaScript framework that is used for making rich and extensible web applications.

It runs on plain JavaScript and HTML, hence you don’t need any other dependencies to make it work. AngularJS is perfect for Single Page Applications (SPA). It is basically used for binding JavaScript objects with HTML UI elements.

Q #2) Define the features of AngularJS.

Answer: Its features include:

  • The Template (View)
  • The Scope (Model)
  • The Controller (Controller)
  • Services
  • Filters
  • Directives

Q #3) Define Data Binding.

Answer: Data binding is an automatic attunement of data between the view and model components.

Q #4) Distinguish between AngularJs and JavaScript expressions.

Answer: There are several differences between AngularJs and JavaScript expressions:

  • We can write AngularJs expressions in HTML, but we cannot write JavaScript expressions in HTML.
  • We cannot use conditional iterations, loops, and exceptions in AngularJs, but we can use all of these conditional properties in JavaScript expressions.
  • Filters are supported in AngularJs whereas filters are not supported in JavaScript.

Q #5) Write all the steps to configure an Angular App(ng-app).

Answer: To set up an Angular App we must follow certain steps as mentioned below:

  • angular.module will be created at first.
  • A controller will be assigned to the module.
  • The module will be linked with the HTML template(i.e. UI or View) with an angular app(ng-app).
  • The HTML template will be linked with the controller(i.e JS) with an ng-controller directive.

Q #6) What are the Angular Modules?

Answer: The angular modules collectively define an angular application where we can write the angular code.

Modules contain the different parts of an angular application. A module is created by angular.module function in angular.

Q #7) What are the directive scopes in AngularJs?

Answer: Three directive scopes are available in AngularJs.

They are:

  • Parent scope – Whatever change you make in your directive that comes from the parent scope, will also reflect in the parent scope, and it is also a default scope.
  • Child scope – It is a nested scope which inherits a property from the parent scope. Also if any properties and function on the scope are not connected with the parent scope directive, then a new child scope directive is created.
  • Isolated scope – It is reusable and is used when we build a self-contained directive. It is only used for private and internal use which means it does not contain any properties of the parent scope.

Q #8) How can we share the data between controllers in AngularJs?

Answer: First, we have to create a service. Service is used to share the data between controllers in AngularJs in a very lucid, easy and fastest way. We use events, $parent, next sibling, and controller by using $rootScope.

Q #9) What is the digest cycle in AngularJs?

Answer: It is a part of the process of data binding in AngularJs. It compares the old and new version of the scope model value in each digest cycle.

The digest cycle is triggered automatically. We can also enhance the usability by using $apply (), if we want to trigger the digest cycle manually.

Q #10) Explain the differences between one-way binding and two-way binding.

Answer: One-way binding is used to bind the data from the model to view without updating the HTML template or view automatically.

Thus in order to update the HTML template, we need to write a custom code which will update the view every time whenever a data is binded from model to view.

Whereas, two-way binding is used to bind the data from the model to view and vice versa(i.e view to model) by automatically updating the HTML template without writing any custom code.

Q #11) Difference between sessionStorage, cookies, and localStorage.

Answer: Given below are the various differences.

SessionStorage – The data is stored for a particular session. The data will be lost whenever the browser tab will be closed or after some particular session. Maximum size stored can be up to 5MB.

LocalStorage – The data is stored with no expiration date. The data can only be cleared by JavaScript or by clearing the browser cache. Storage limit is maximum than the sessionStorage and cookie.

Cookies – It stores the data that has to be sent back to the server with some requests. The cookie's expiration varies on the type and duration set from either the server side or client side. Maximum size stored can be less than 4KB.


Q #12) What is the role of $routeProvider in AngularJs?

Answer: It is the $routeProvider that helps in navigating between different pages/links without separately loading the page/link whenever a user clicks on a link.

ngRoute config() method is used to configure the routeProvider.

Q #13) What is the difference between $scope and scope?

Answer: In AngularJs $scope is used to achieve dependency injection and scope is used for linking between View (i.e HTML) and Controller (i.e JS).

Q #14) How are AngularJs prefixes $ and $$ used?

Answer: $$ variable in AngularJS is used as a private variable, as it is used to prevent accidental code collision with the user code.

Whereas $ prefix can be used to denote angular core functionalities (like a variable, parameter, property or method).

Q #15) Where can we implement the DOM manipulation in AngularJs?

Answer: Manipulation of DOM is in directives and apart from this it should not exist in controllers’ services or anywhere else.

Q #16) How can we show that a scope variable should have one-time binding only?

Answer: To show one-time binding we have to use “::” in front of the scope.

Q #17) What is SPA (Single page application) in AngularJs?

Answer: It is a web application which loads a single HTML page and dynamically updates the page as the user connects with the app.

By using AJAX and HTML a fluid and responsive web app can be created by SPA without invariant page reloads. Through this, we can make responsive UI with no page flicker.

Q #18) How many types of data bindings are there in AngularJs?

Answer: AngularJs supports both one way and two-way binding.

In one way binding if we change the data model, then there will be no dynamic change that you will see in view but in two way binding, there will be a dynamic change whenever a change will be made in the data model.

Data bindings in AngularJS

Q #19) What are the binding directives in AngularJs?

Answer: The binding directives include:

  • ng-bind
  • ng-bind-html
  • ng-bind-template
  • ng-non-bindable
  • ng-model

Q #20) Explain ng-bind and ng-bind-html directives.

Answer:

ng-bind: It is a directive which replaces the content of the HTML element with the value of the assigned variable or expression.

The content of the HTML element will change by changing the value of the variable or expression.

It is like ({{expression}}) and the syntax for this is,

<ANY ELEMENT ng-bind="expression"> </ANY ELEMENT>

ng-bind-html: It is a directive which binds the content to the HTML element(view) in a secure way. $sanitize service is used to sanitize the content to bind into an HTML element. To do this ‘angular-sanitize.js’ must be included in our application.

Syntax to write this,

<ANY ELEMENT ng-bind-html=" expression "> </ANY ELEMENT>

Q #21) Explain ng-bind-template and ng-non-bindable.

Answer:

ng-bind-template: It replaces the text content of the element by interpolation of the template. It can contain multiple double curly markups.

<ANY ELEMENT ng-bind-template= " {{expression1}} {{expression2}} … {{expression n}} "> </ANY ELEMENT>

Ng-non-bindable: It specifies AngularJs to not compile the content of this HTML element and its child nodes.

<ANY ELEMENT ng-non-bindable > </ANY ELEMENT>

Q #22) Explain the ng-model directive in AngularJs.

Answer: This can be a leap hop with the custom HTML input form control( like input, textarea and select) to the application data. It provides form validation behavior with a two-way binding.

<input ng-bind="expression"/>

Q #23) Define Factory method in AngularJs.

Answer: It is quite similar to service, factories implement a module pattern in which we use a factory method to generate an object which is used for building models.

In a factory, a method object is returned at the end by creating a new object and adding functions as properties.

Syntax:

module.factory(‘factoryName', function);

Q #24) What is ng-repeat directive in AngularJs?

Answer: It renders or iterates over a collection of items and creates DOM elements. It regularly monitors the source of data to re-render a template in response to a change.

Syntax:

<table class="table table-bordered"> 
      <tr ng-repeat="student stuDetails"> 
            <td>{{stu.name}} </td> 
           <td> {{stu. grade}} </td> 
     </tr> 
</table>

Q #25) What is a controller in AngularJs?

Answer: A controller is a JavaScript function which is bound to the specified scope. Angular instantiates the new controller object and injects the new scope as a dependency.

Controller in AngularJS

A controller can be used to set up the initial state of the scope object and to add behavior to the object.

A controller cannot be used to share code or state across controllers, but instead of that Angular service can be used.

<Any ng-Controller=” expression”> 
</Any> 
<div ng-app="mainApp" ng-controller="SimpleController"> 
</div>

Q #26) What are filters in AngularJs?

Answer: The main work of filters is to modify the data, so that it can be merged into an expression or directive by using a pipe character (it is used for applying filters in an angular symbol of a pipe which is (|) or this is the symbol).

A filter formats the value of an expression for display to the user. They can be used in view templates, controllers, or services, and we can easily create our own filter as well. A filter is a module provided by AngularJS. There are nine components of a filter which are provided by AngularJS.

Examples: currency, date, filter, json, limitTo etc.

Q #27) What is ng-App directive in AngularJs?

Answer: It is used to define the AngularJs Application. It appoints the root element of an AngularJs application and it is kept near the <body> or <html> tag.

We can define any number of ng-app directives inside the HTML document, but only one AngularJS application can be bootstrapped automatically (auto-bootstrapped) and the other applications need to be bootstrapped manually.

Example:

<div ng-app="">
<p>My first expression: {{157 + 122}} </p>
</div>

Q #28) What is ng-switch in AngularJs?

Answer: It is used to conditionally exchange the structure of DOM on a template which is based on a scope-based expression.

This directive lets you show or hide the HTML element depending on the expression.

<element ng-switch="expression">
<element ng-switch-when="value"></element>

Q #29) What is the use of a double-click event in AngularJs?

Answer: It allows you to specify the custom behavior on a double click event of the mouse on a web page. We can use it (ng-dblclick) as an attribute of the HTML element like,

<ANY_HTML_ELEMENT ng-dblclick="{expression}"> 
... 
</ANY_HTML_ELEMENT>

Q #30) What are ng-include and ng-click directives in AngularJs?

Answer:

ng-include helps to include different files on the main page. The ng-include directive includes HTML from an external file.

The included content will be included as child nodes of the specified element. The value of the ng-include attribute can also be an expression, returning a filename.

By default, the included file must be located on the same domain as the document.

<div ng-include="'myFile.htm'"></div>

ng-click can be used in scenarios like when you click on a button or when you want to do any operation. It tells AngularJS what to do when an HTML element is clicked.

Example:

<button ng-click="count = count + 1" ng-init="count=0">OK</button>

The above code will increase the count variable by one whenever the button is clicked.

Q #31) What is a representational state transfer(REST) in AngularJs?

Answer: REST is an API style that operates over the HTTP request.

The requested URL identifies the data to be operated on, and the HTTP method identifies the operation that is to be performed. REST is a style of API rather than a formal specification, and there is a lot of debate and disagreement about what is and isn’t RESTful, which is a term used to indicate an API that follows the REST style.

AngularJS is flexible about how RESTful web services are consumed.

Q #32) What are the AngularJs Global API?

Answer: It is a combination of global JavaScript function which is used to perform tasks like comparing objects, iterating objects and converting data.

There are some common API functions like:

  • angular. lowercase: It converts a string to lowercase string.
  • angular. uppercase: It converts a string to uppercase string.
  • angular. isString: It will return true if the current reference is a string.
  • angular. isNumber: It will return true if the current reference is a number.

Q #33) What is a provider method in AngularJs?

Answer: A provider is an object which creates a service object by allowing to take more control.

$get() method is used in the provider which returns the service object. The service name and the factory function are the arguments that are passed into the provider method. AngularJS uses $provide to register new providers.

Syntax:

 serviceApp.provider("logService", function ())

Q #34) What is Event Handling?

Answer: Event handling in AngularJs is very useful when you want to create advance AngularJs applications.

We need to handle DOM events like mouse clicks, moves, keyboard presses, change events and so on. AngularJs has some listener directives like ng-click, ng-dbl-click, ng-mousedown, ng-keydown, ng-keyup etc.

Q #35) What is AngularJs DOM?

Answer: AngularJs has some directives which are used to encapsulate AngularJs application data to a disabled attribute of the HTML elements.

Example: ng-disabled directive encapsulates the application data to the disabled attributes of HTML DOM element.

<div ng-app="" ng-init="mySwitch=true">
<p>
<button ng-disabled="mySwitch">Click Me!</button>
</p>
<p>
<input type="checkbox" ng-model="mySwitch"/>Button
</p>
<p>
{{ mySwitch }}
</p>
</div>

Q #36) What are the attributes that can be used during the creation of a new AngularJs directives?

Answer: There are several attributes which can be used during a new directive creation.

They include:

  1. Template: It describes an inline template as a string.
  2. Template URL: This attribute specifies the AngularJs HTML compiler to replace the custom directive inside a template with the HTML content located inside a separate file.
  3. Replace: It replaces the current element if the condition is true, if false append this directive to the current element.
  4. Transclude: It allows you to move the original children of a directive to a location inside the new template.
  5. Scope: It creates a new scope for this directive rather than inheriting the parent scope.
  6. Controller: It creates a controller which publishes an API for communicating across the directives.
  7. Require: It requires another directive to be present to function the current directive efficiently.
  8. Link: It modifies resulting DOM element instances, adds event listeners, and set up data binding.
  9. Compile: It modifies the DOM template for features across copies of a directive, as when used in other directives. Your compile function can also return link functions to modify the resulting element instances.

Q #37) Is Nested Controllers possible or not in AngularJs?

Answer: Yes, it is possible as Nested Controllers are well-defined in a classified manner while using a view.

Q 38) Is AngularJS well-suited with all browsers?

Answer: Yes, it is companionable with all browsers like Safari, Chrome, Mozilla, Opera, IE etc. as well as Mobile browsers.

Q 39) Define services in AngularJS.

Answer: AngularJS services are the singleton objects or functions which are used for carrying out definite tasks.

It embraces some corporate ideas and these purposes can be called as controllers, directive, filters and so on.

Q 40) Explain the advantages of AngularJS.

Answer: Advantages of AngularJS include:

  • AngularJS supports MVC form.
  • Organize two ways data binding using AngularJS.
  • It supports mutual client-server communication.
  • It supports simulations.

Q #41) Difference between services and factory.

Answer: Factories are functions that return the object, while services are constructor functions of the object which is used by a new keyword.

Syntax:

Factory – module.factory(`factoryName`, function);

Service – module.service(`serviceName`, function);

Q #42) If both factory and service are equivalent, then when should I use them?

Answer: Factory provider is preferred using an object, whereas a service provider is preferred using with class.

Q #43) Difference between AngularJS and React.JS.

Answer: AngularJS is a TypeScript language based JS framework released in October 2010 by Google. It is a completely free framework and open source that is used in SPA projects (i.e. Single Page Application projects).

React.JS is a javascript library developed by Facebook in March 2013 for building UI. React components can be used on several pages but not as a SPA (i.e. Single Page Application).

Q #44) Difference between ng-bind and ng-model directive.

Answer: ng-bind directive has one way data bindings, data flows only from object to UI, not vice versa (i.e. $scope>>view) and ng-model directive has two way data bindings, data flows between UI to object and vice versa(i.e. $scope>>view and view>>$scope).

Q #45) What is the difference between AJAX and AngularJs?

Answer: AJAX stands for Asynchronous JavaScript which is used for sending and getting responses from the server without loading the page.

Whereas, AngularJS is a typescript language based JavaScript framework following the MVC pattern.

Q #46) Define ng-if, ng-show and ng-hide.

Answer: ng-if directive is used as if clause which removes the HTML element if the expression becomes false.

Syntax

<element ng-if=”expression”></element>

ng-show directive is used to show the HTML element if the expression becomes true. And if the expression becomes false then the HTML element will be hidden.

Syntax

<element ng-show=”expression”></element>

ng-hide directive is used to hide the HTML element if the expression becomes false.

Syntax

<element ng-hide=”expression”></element>

Both ng-show and ng-hide uses the display property method.

Q #47) What is the difference between ngRoute and ui-router?

Answer: ngRoute is a module developed by angularJS team which was a part of the core angularJS framework. Whereas ui-router was developed by a third-party community to overcome the problems of ngRoute.

ngRoute is a location or URL based routing, and ui-router is a state-based routing which allows nested views.

Q #48) How to set, get and clear cookies in AngularJs?

Answer: AngularJS has a module called ngCookies, so before injecting ngCookies angular-cookies.js should be included into the application.

Set Cookies – Put method is used to set cookies in a key-value format.

$cookies.put(“username”, $scope.username);

Get Cookies – Get method is used to get cookies.

$cookies.get(‘username’);

Clear Cookies – Remove method is used to remove cookies.

$cookies.remove(‘username’);

Conclusion

I'm sure that this article would have helped you to understand the basics and advanced level of AngularJS.

This set of interview questions and answers on AngularJS listed here will enable you to crack any AngularJS interview successfully at a fresher as well as experience level. These are the frequent questions that are asked in the interviews. That’s all for now.

This article will help you to crack and face any interview related to AngularJS!! Hope you enjoyed the entire range of tutorials in this AngularJS series!!

PREV Tutorial