Javascript Question
Javascript Question
JavaScript is a popular web scripting language and is used for client-side and server-
side development. The JavaScript code can be inserted into HTML pages that can be
understood and executed by web browsers while also supporting object-oriented
programming abilities.
JavaScript Java
Java is an object-oriented
JavaScript is an object-oriented scripting language.
programming language.
JavaScript does not need compilation before running Java source code needs a
the application code. compiler before it can be
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
Undefined - For variables that are only declared and not defined or initialized
Cross-platform compatible
Open-source
Object-oriented
Enhanced Interaction
JavaScript adds interaction to otherwise static web pages and makes them react to users’ inputs.
Quick Feedback
There is no need for a web page to reload when running JavaScript. For example, form input
validation.
JavaScript helps in making the UI of web applications look and feel much better.
Frameworks
const student = {
name: 'John',
age: 17
Here is a very simple way of creating arrays in JavaScript using the array literal:
var a = [];
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
The scope of a variable implies where the variable has been declared or defined in a JavaScript
program. There are two scopes of a variable:
Global Scope
Global variables, having global scope are available everywhere in a JavaScript code.
Local Scope
Local variables are accessible only within a function in which they are defined.
The ‘this’ keyword in JavaScript refers to the currently calling object. It is commonly used in
constructors to assign values to object properties.
Variable names cannot be similar to that of reserved keywords. For example, var, let, const,
etc.
Variable names cannot begin with a numeric value. They must only begin with a letter or an
underscore character.
In JavaScript, functions are objects and therefore, functions can take other functions as
arguments and can also be returned by other functions.
All modern web browsers like Chrome, Firefox, etc. have an inbuilt debugger that can be
accessed anytime by pressing the relevant key, usually the F12 key. There are several features
available to users in the debugging tools.
We can also debug a JavaScript code inside a code editor that we use to develop a JavaScript
application—for example, Visual Studio Code, Atom, Sublime Text, etc.
14. What is the difference between Function declaration and Function expression?
Example: Example:
return 5; return 5;
} }
15. What are the ways of adding JavaScript code in an HTML file?
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
We can write JavaScript code within the script tag in the same HTML file; this is suitable
when we need just a few lines of scripting within a web page.
We can import a JavaScript source file into an HTML document; this adds all scripting
capabilities to a web page without cluttering the code.
Here are some intermediate level JavaScript interview questions and answers for you to prepare
during your interviews.
A cookie is generally a small data that is sent from a website and stored on the user’s machine by
a web browser that was used to access the website. Cookies are used to remember information
for later use and also to record the browsing activity on a website.
Reading a cookie using JavaScript is also very simple. We can use the document.cookie string
that contains the cookies that we just created using that string.
The document.cookie string keeps a list of name-value pairs separated by semicolons, where
‘name’ is the name of the cookie, and ‘value’ is its value. We can also use the split() method to
break the cookie value into keys and values.
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
To delete a cookie, we can just set an expiration date and time. Specifying the correct path of the
cookie that we want to delete is a good practice since some browsers won’t allow the deletion of
cookies unless there is a clear path that tells which cookie to delete from the user’s machine.
function delete_cookie(name) {
Both let and var are used for variable and method declarations in JavaScript. So there isn’t much
of a difference between these two besides that while var keyword is scoped by function, the let
keyword is scoped by a block.
Closures provide a better, and concise way of writing JavaScript code for the developers and
programmers. Closures are created whenever a variable that is defined outside the current scope
is accessed within the current scope.
function hello(name) {
console.log(message);
};
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
//generate closure
//use closure
helloWorld();
Arrow functions are a short and concise way of writing functions in JavaScript. The general
syntax of an arrow function is as below:
console.log("hello world!");
};
23. What are the different ways an HTML element can be accessed in a JavaScript
code?
Here are the ways an HTML element can be accessed in a JavaScript code:
getElementByClass(‘classname’): Gets all the HTML elements that have the specified
classname.
getElementbyTagName(‘tagname’): Gets all the HTML elements that have the specified
tagname.
querySelector(): Takes CSS style selector and returns the first selected HTML element.
Var
This is used to declare a variable and the value can be changed at a later time within the
JavaScript code.
Const
We can also use this to declare/define a variable but the value, as the name implies, is constant
throughout the JavaScript program and cannot be modified at a later time.
Let
This mostly implies that the values can be changed at a later time within the JavaScript code.
Imports and exports help in writing modular code for our JavaScript applications. With the help
of imports and exports, we can split a JavaScript code into multiple files in a project. This greatly
simplifies the application source code and encourages code readability.
calc.js
return x * x;
}
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
This file exports two functions that calculate the squares and diagonal of the input respectively.
main.js
console.log(square(4)); // 16
console.log(diag(4, 3)); // 5
Therefore, here we import those functions and pass input to those functions to calculate square
and diagonal.
Document Window
27. What are some of the JavaScript frameworks and their uses?
JavaScript has a collection of many frameworks that aim towards fulfilling the different aspects
of the web application development process. Some of the prominent frameworks are:
Undefined Undeclared
Undefined Null
30. What is the difference between Session storage and Local storage?
31. What are the various data types that exist in JavaScript?
Javascript consists of two data types, primitive data types, and non-primitive data types.
Primitive Data types: These data types are used to store a single value. Following are the sub-
data types in the Primitive data type.
Example:
var a = 3;
var b = 4;
var c = 3;
(a == b) // returns false
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
(a == c) //returns true
Example:
var z = null;
Undefined data Types: It stores variables that are only declared, but not defined or initialized.
Example:
var a; // a is undefined
Example:
Example:
Example:
BigInt Data Types: It stores the Number data types that are large integers and are above the
limitations of number data types.
Example:
Non-Primitive data types are used to store multiple as well as complex values.
Example:
var obj1 = {
x: 43,
y: "Hello world!",
z: function(){
return this.x;
The Keyword ‘this’ in JavaScript is used to call the current object as a constructor to assign
values to object properties.
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
33. What is the difference between Call and Apply? (explain in detail with examples)
Call
Example:
function sayHello()
sayHello.call(obj);
Apply
Example:
function saySomething(message)
}
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
saySomething.apply(person4, ["awesome"]);
The scope of variables in JavaScript is used to determine the accessibility of variables and
functions at various parts of one’s code. There are three types of scopes of a variable, global
scope, function scope, block scope
Global Scope: It is used to access the variables and functions from anywhere inside the code.
Example:
function sendMessage(){
function sendMessage2(){
Function scope: It is used to declare the function and variables inside the function itself and
not outside.
Example:
function awesomeFunction()
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
var a = 3;
console.log(a*3); // Can access variable "a" since a and multiplyBy3 both are written inside
the same function
console.log(a); // a is written in local scope and can't be accessed outside and throws a reference
error
Example:
let x = 45;
console.log(x); // Gives reference error since x cannot be accessed outside of the block
// do something
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
console.log(i); // Gives reference error since i cannot be accessed outside of the for loop block
Arrow functions are used to write functions with a short and concise syntax. Also, it does not
require a function keyword for declaration. An arrow function can be omitted with curly braces {
} when we have one line of code.
console.log("hello world!");
};
Example:
return a + b;
Hoisting in javascript is the default process behavior of moving declaration of all the variables
and functions on top of the scope where scope can be either local or global.
Example 1:
hoistedFunction(); // " Hi There! " is an output that is declared as function even after it is called
function hoistedFunction(){
Example 2:
hoistedVariable = 5;
var hoistedVariable;
2. “===” operator is also a comparison operator that is used to compare the values as well as
types.
Example:
var x = 3;
var y = "3";
Keyword “var”
In JavaScript programming, the “var” keyword has been used from the very initial stages of
JavaScript.
We can perform functions with the help of the keyword “var’ by accessing various variables.
Keyword “let”
The Keyword “let” was added later in ECMAScript 2015 in JavaScript Programming.
Variable declaration is very limited with the help of the “let” keyword that is declared in
Block. Also, it might result in a ReferenceError as the variable was declared in the “temporal
dead zone” at the beginning of the block.
When the value of one data type is automatically converted into another data type, it is called
Implicit type coercion in javascript.
String coercion
Example:
var x = 4;
var y = "4";
x + y // Returns "44"
Boolean coercion
Example:
var a = 0;
var b = 32;
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
if(a) { console.log(a) } // This code will run inside the block as the value of x is 0(Falsy)
if(b) { console.log(b) } // This code will run inside the block as the value of y is 32 (Truthy)
NaN property in JavaScript is the “Not-a-Number” value that is not a legal number.
Here, the a=432 is a primitive data type i.e. a number type that has an assigned value by the
operator. When the var b=a code gets executed, the value of ‘var a’ returns a new address for
‘var b’ by allocating a new space in the memory, so that ‘var b’ will be operated at a new
location.
Example:
var a = 432;
var b = a;
The reference of the 1st variable object i.e. ‘var obj’ is passed through the location of another
variable i.e. ‘var obj2’ with the help of an assigned operator.
Example:
An Immediately Invoked Function also abbreviated as IIFE or IIFY runs as soon as it is defined.
To run the function, it needs to be invoked otherwise the declaration of the function is returned.
Syntax
(function()
// Do something;
})
();
Strict mode does not allow duplicate arguments and global variables.
One cannot use JavaScript keywords as a parameter or function name in strict mode.
Strict mode can be defined at the start of the script with the help of the keyword ‘use strict’.
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
Higher-order functions are the functions that take functions as arguments and return them by
operating on other functions
Example:
function higherOrder(fn)
fn();
Self Invoking Functions is an automatically invoked function expression followed by (), where it
does not need to be requested. Nevertheless, the declaration of the function is not able to be
invoked by itself.
exec()
It is an expression method in JavaScript that is used to search a string with a specific pattern.
Once it has been found, the pattern will be returned directly, otherwise, it returns an “empty”
result.
test ()
It is an expression method in JavaScript that is also used to search a string with a specific
pattern or text.
Once it has been found, the pattern will return the Boolean value 'true', else it returns ‘false’.
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
Example:
return function(b){
return a + b;
add(3)(4)
External Javascript allows web designers and developers to collaborate on HTML and
javascript files.
Following are the different object prototypes in javascript that are used to inherit particular
properties and methods from the Object.prototype.
1. Date objects are used to inherit properties from the Date prototype
2. Math objects are used to inherit properties from the Math prototype
3. Array objects are used to inherit properties from the Array prototype.
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
Javascript has two types of errors, Syntax error, and Logical error.
In JavaScript, when we want to cache the return value of a function concerning its parameters, it
is called memoization. It is used to speed up the application especially in case of complex, time
consuming functions.
Constructor functions are used to create single objects or multiple objects with similar properties
and methods.
Example:
function Person(name,age,gender)
this.name = name;
this.age = age;
this.gender = gender;
console.log(person1);
console.log(person2);
We can retrieve a character from a certain index with the help of charAt() function method.
BOM is the Browser Object Model where users can interact with browsers that is a window, an
initial object of the browser. The window object consists of a document, history, screen,
navigator, location, and other attributes. Nevertheless, the window’s function can be called
directly as well as by referencing the window.
Client-side JavaScript
Also, it is automatically included in the HTML pages where the browser understands the
script.
Server-side Javascript
The Prototype design Pattern is also known as a property or prototype pattern that is used to
produce different objects as well as prototypes that are replicated from a template with a specific
value.
59. Differences between declaring variables using var, let and const.
There is a global scope as There is neither a global scope nor There is neither a global
well as a function scope. a function scope. scope nor a function scope.
1. There is no block
scope. There is no block scope. There is no block scope.
function catchValues()
console.log(variable1);
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
console.log(variable2);
// Both the variables are accessible from anywhere as their declaration is in the global scope
const x = {name:"Vijay"};
const y = 31;
Rest Parameter(...)
Rest parameter is used to declare the function with improved handling of parameters.
Rest parameter syntax can be used to create functions to perform functions on the variable
number of arguments.
It also helps to convert any number of arguments into an array as well as helps in extracting
some or all parts of the arguments.
Spread Operator(...)
It's also to spread one or more arguments that are expected in a function call.
The spread operator is used to take an array or an object and spread them.
Pending is an initial
state of promise. It is It is the state
It is the state
the initial state of where the
where the
promise where it is It is the state where the promise promise is
promise is
in the pending state has been fulfilled that assures that rejected and the
rejected or
that neither is the async operation is done. async operation
fulfilled.
fulfilled nor has failed.
rejected.
Example:
function sumOfThreeElements(...elements)
if(elements.length > 3 )
{
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
else
let sum = 0;
let i = 0;
sum += elements[i];
i++;
})
classes are syntactic sugars for constructor functions mentioned in the ES6 version of JavaScript.
Classes are not hoisted-like Functions and can’t be used before it is declared. Also, it can inherit
properties and methods from other classes with the help of extended keywords. If the strict mode
(‘use strict’) is not followed, an error will be shown.
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
Generator functions are declared with a special class of functions and keywords using function*.
It does not execute the code, however, it returns a generator object and handles the execution.
WeakSet is a collection of unique and ordered elements that contain only objects which are
referenced weakly.
A callback function is used to send input into another function and is performed inside
another function.
It also ensures that a particular code does not run until another code has completed its
execution.
Weakmap is referred to as an object having keys and values, if the object is without reference, it
is collected as garbage.
console.log(first); // Outputs 1
console.log(second); // Outputs 2
console.log(third); // Outputs 3
Prototypal Inheritance
Prototypal inheritance allows any object to be cloned via an object linking method and it
serves as a template for those other objects, whether they extend the parent object or not.
Classical Inheritance
Classical inheritance is a class that inherits from the other remaining classes.
Temporal Dead Zone is a behavior that occurs with variables declared using let and const
keywords before they are initialized.
When we build JavaScript browser applications, there might be chances to occur errors where
JavaScript approaches it in a repetitive manner. This repetitive approach pattern is called
JavaScript design patterns. JavaScript design patterns consist of Creational Design Pattern,
Structural Design Pattern, and Behavioral Design patterns.
Async/Await
Async-await functions are executed sequentially one after another in an easier way.
Generators
Generator functions are executed with one output at a time by the generator’s yield by yield.
The ‘value: X, done: Boolean’ is the output result of the Generator function.
The primitive data types are capable of displaying one value at a time. It consists of Boolean,
Undefined, Null, Number, and String data types.
The Deferred scripts are used for the HTML parser to finish before executing it.
Lexical Scoping in JavaScript can be performed when the internal state of the JavaScript
function object consists of the function’s code as well as references concerning the current scope
chain.
The OS on the client machine can be detected with the help of navigator.appVersion string
To debug the code, we can use web browsers such as Google Chrome, and Mozilla Firefox.
We can debug in JavaScript with the help of two methods, console.log() and debugger
keyword.
Pop-up boxes available in JavaScript are Alert Box, Confirm Box, and Prompt Box.
Here are some advanced level JavaScript interview questions and answers for you to prepare
during your interviews.
arr.length = 0;
arr = [];
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
arr.pop();
arr.splice(0, arr.length);
81. What is the difference between Event Capturing and Event Bubbling?
While in Strict mode, all variables have to be declared explicitly, values cannot be assigned to
a read-only property, etc.
We can enable strict mode by adding ‘use strict’ at the beginning of a JavaScript code, or
within a certain segment of code.
var a = 10;
if (function abc(){})
a += typeof abc;
console.log(a);
The output of this JavaScript code will be 10undefined. The if condition statement in the code
evaluates using eval. Hence, eval(function abc(){}) will return function abc(){}.
Inside the if statement, executing typeof abc returns undefined because the if statement code
executes at run time while the statement inside the if the condition is being evaluated.
84. Can you write a JavaScript code for adding new elements in a dynamic manner?
<script type="text/javascript">
function addNode() {
newP.appendChild(textNode); document.getElementById("firstP").appendChild(newP);
</script>
Call Apply
return 11;
};
typeof Foo();
JAI SHRIRAM ENGINEERING COLLEGE
TIRUPPUR – 638 660
Approved by AICTE, New Delhi & Affiliated to Anna University, Chennai
Recognized by UGC & Accredited by NAAC and NBA (CSE and ECE).
The output would be a reference error since a function definition can only have a single reference
variable as its name.
var Student = {
college: "abc",
};
delete stud1.college;
console.log(stud1.company);
This is essentially a simple example of object-oriented programming. Therefore, the output will
be ‘abc’ as we are accessing the property of the student object.
There are two ways in which we can remove duplicates from a JavaScript array:
To call the filter() method, three arguments are required. These are namely array, current
element, and index of the current element.