JavaScript Interview Questions and Answers
JavaScript (JS) is the most popular lightweight, scripting, and
interpreted programming language. JavaScript is well-known as a
scripting language for web pages, mobile apps, web servers, and
many other platforms. It is essential for both front-end and back-
end developers to have a strong command of JavaScript, as many
job roles require fluency in this language.
1. What are the differences between Java and JavaScript?
Java is an object Oriented Programming language while JavaScript
is a client-side scripting language. Both of them are totally
different from each other.
Java
: It is one of the most popular programming languages. It is an
object-oriented programming language and has a virtual machine
platform that allows you to create compiled programs that run on
nearly every platform. Java promised, “Write Once, Run
Anywhere”.
JavaScript
: It is a light-weighted programming language (“scripting
language”) for developing interactive web pages. It can insert
dynamic text into the HTML elements. JavaScript is also known as
the browser’s language.
2. What are Data Types in JavaScript?
JavaScript data types are categorized into two parts i.e. primitive
and non-primitive types.
Primitive Data Type: The predefined data types provided by
JavaScript language are known as primitive data type. Primitive
data types are also known as in-built data types.
Numbers
Strings
Boolean
Symbol
Undefined
Null
BigInt
Non-Premitive Data Type: The data types that are derived from
primitive data types are known as non-primitive data types. It is
also known as derived data types or reference data types.
Objects
Functions
Arrays
3. Which symbol is used for comments in JavaScript?
Comments prevent the execution of statements. Comments are
ignored while the compiler executes the code. There are two type
of symbols to represent comments in JavaScript:
Double slash: It is known as a single-line comment.
// Single line comment
Slash with Asterisk: It is known as a multi-line comment.
/*
Multi-line comments
...
*/
4. What would be the result of 3+2+”7″?
Here, 3 and 2 behave like an integer, and “7” behaves like a
string. So 3 plus 2 will be 5. Then the output will be 5+”7″ = 57.
5. What is the use of the isNaN function?
The number isNan function determines whether the passed value
is NaN (Not a number) and is of the type “Number”. In JavaScript,
the value NaN is considered a type of number. It returns true if the
argument is not a number, else it returns false.
6. Which is faster in JavaScript and ASP script?
JavaScript is faster compared to ASP Script. JavaScript is a client-
side scripting language and does not depend on the server to
execute. The ASP script is a server-side scripting language always
dependable on the server.
7. What is negative infinity?
The negative infinity is a constant value represents the lowest
available value. It means that no other number is lesser than this
value. It can be generate using a self-made function or by an
arithmetic operation. JavaScript shows the NEGATIVE_INFINITY
value as -Infinity.
8. Is it possible to break JavaScript Code into several lines?
Yes, it is possible to break the JavaScript code into several lines in
a string statement. It can be broken by using the ‘\n’ (backslash
n).
For example
[Link]("A Online Computer Science Portal\n for Geeks")
The code-breaking line is avoid by JavaScript which is not
preferable.
let gfg= 10, GFG = 5,
Geeks =
gfg + GFG;
9. Which company developed JavaScript?
Netscape developed JavaScript and was created by Brenden Eich
in the year of 1995.
10. What are undeclared and undefined variables?
Undefined
: It occurs when a variable is declare but not assign any value.
Undefined is not a keyword.
Undeclared
: It occurs when we try to access any variable which is not
initialize or declare earlier using the var or const keyword. If we
use
‘typeof’ operator
to get the value of an undeclare variable, we will face the runtime
error with the return value as “undefined”. The scope of the
undeclare variables is always global.
11. Write a JavaScript code for adding new elements dynamically.
1
<html>
2
<head>
3
</head>
4
<body>
5
<button >6
Click Here!
7
</button>
8
9
<script>
10
function create() {
11
let geeks = [Link]('geeks');
12
[Link] = "Geeksforgeeks";
13
[Link]('class', 'note');
14
[Link](geeks);
15
}
16
</script>
17
</body>
18
</html>
12. What are global variables? How are these variables declared,
and what are the problems associated with them?
In contrast, global variables are the variables that define outside
of functions. These variables have a global scope, so they can be
used by any function without passing them to the function as
parameters.
Example:
1
let petName = "Rocky"; // Global Variable
2
myFunction();
3
4
function myFunction() {
5
[Link]("Inside myFunction - Type of petName:", typeof
petName);
6
[Link]("Inside myFunction - petName:", petName);
7
}
8
9
[Link]("Outside myFunction - Type of petName:", typeof
petName);
10
[Link]("Outside myFunction - petName:", petName);
Output
Inside myFunction - Type of petName: string
Inside myFunction - petName: Rocky
Outside myFunction - Type of petName: string
Outside myFunction - petName: Rocky
It is difficult to debug and test the code that relies on global
variables.
13. What do you mean by NULL in JavaScript?
The NULL value represents that no value or no object. It is known
as empty value/object.
14. How to delete property-specific values?
The delete keyword deletes the whole property and all the values
at once like
let gfg={Course: "DSA", Duration:30};
delete [Link];
15. What is the difference between null and undefined in
JavaScript?
A deeper comparison between the two special values, null
(intentional absence of value) and undefined (uninitialized
variables).
16. What is a prompt box?
The prompt box is a dialog box with an optional message
prompting the user to input some text. It is often used if the user
wants to input a value before entering a page. It returns a string
containing the text entered by the user, or null.
17. What is the ‘this’ keyword in JavaScript?
Functions in JavaScript are essential objects. Like objects, it can
be assign to variables, pass to other functions, and return from
functions. And much like objects, they have their own properties.
‘this’ stores the current execution context of the JavaScript
program. Thus, when it use inside a function, the value of ‘this’
will change depending on how the function is defined, how it is
invoked, and the default execution context.
18. Explain the working of timers in JavaScript. Also explain the
drawbacks of using the timer, if any.
The timer executes some specific code at a specific time or any
small amount of code in repetition to do that you need to use the
functions setTimout, setInterval, and clearInterval. If the
JavaScript code sets the timer to 2 minutes and when the times
are up then the page displays an alert message “times up”. The
setTimeout() method calls a function or evaluates an expression
after a specified number of milliseconds.
19. What is the difference between ViewState and SessionState?
ViewState: It is specific to a single page in a session.
SessionState: It is user specific that can access all the data on the
web pages.
20. How to submit a form using JavaScript?
You can use [Link][0].submit()method to submit the
form in JavaScript.
21. Does JavaScript support automatic type conversion?
Yes, JavaScript supports automatic type conversion.
22. What is a template literal in JavaScript?
A template literal in JavaScript is a way to define strings that allow
embedded expressions and multi-line formatting. It uses backticks
(`) instead of quotes and supports ${} for embedding variables or
expressions inside the string.
23. What is a higher-order function in JavaScript?
A higher-order function in JavaScript is a function that either takes
one or more functions as arguments, or returns a function as its
result. These functions allow for more abstract and reusable code,
enabling functional programming patterns
For example, map() and filter() are higher-order functions because
they take callback functions as arguments.
JavaScript Intermediate Interview Questions
24. What are all the looping structures in JavaScript?
while loop
: A while loop is a control flow statement that allows code to be
executed repeatedly based on a given Boolean condition. The
while loop can be thought of as a repeating if statement.
for loop
: A for loop provides a concise way of writing the loop structure.
Unlike a while loop, for statement consumes the initialization,
condition and increment/decrement in one line thereby providing
a shorter, easy to debug structure of looping.
do while
: A do-while loop is similar to while loop with the only difference
that it checks the condition after executing the statements, and
therefore is an example of Exit Control Loop.
25. What is lexical scope in JavaScript?
Lexical scope in JavaScript refers to the way variables are
resolved based on their location in the source code. A variable’s
scope is determined by the position of the code where it is
defined, and it is accessible to any nested functions or blocks.
This means that functions have access to variables in their own
scope and the outer (lexical) scopes, but not to variables in inner
scopes.
1
let outer = "I am outside!";
2
function inner() {
3
[Link](outer);
4
}
5
inner();
In this example, inner() can access the outer variable because of
lexical scoping.
26. How does lexical scoping work with the this keyword in
JavaScript?
In JavaScript, lexical scoping primarily applies to variable
resolution, while the behavior of the this keyword is determined
by how a function is called, not by its position in the code. The
value of this is dynamically determined at runtime based on the
function’s context (e.g., whether it’s called as a method, in a
global context, or with call, apply, or bind).
1
const obj = {
2
name: "JavaScript",
3
greet: function () {
4
[Link]([Link]);
5
}
6
};
7
[Link](); // "JavaScript"
Here, this refers to obj because the function is called as a method
of the object. Lexical scoping affects variable lookups but doesn’t
alter how this behaves.
27. Explain how to read and write a file using JavaScript?
The
readFile()
functions is used for reading operation.
readFile( Path, Options, Callback)
The
writeFile()
functions is used for writing operation.
writeFile( Path, Data, Callback)
28. What is called Variable typing in JavaScript ?
The variable typing is the type of variable used to store a number
and using that same variable to assign a “string”.
Geeks = 42;
Geeks = "GeeksforGeeks";
29. What is hoisting in JavaScript?
Hoisting in JavaScript is the behavior where variable and function
declarations are moved to the top of their containing scope during
compilation, before the code is executed. This means you can
reference variables and functions before they are declared in the
code. However, only declarations are hoisted, not initializations.
1
[Link](a); // undefined
2
var a = 5;
In this case, the declaration of a is hoisted, but its value (5) is not
assigned until the code execution reaches that line. Hoisting
applies differently for var, let, const, and function declarations.
30. How to convert the string of any base to integer in JavaScript?
In JavaScript, parseInt() function is used to convert the string to
an integer. This function returns an integer of base which is
specified in second argument of parseInt() function. The parseInt()
function returns Nan (not a number) when the string doesn’t
contain number.
31. Explain how to detect the operating system on the client
machine?
To detect the operating system on the client machine, one can
simply use [Link] or [Link] property.
The Navigator appVersion property is a read-only property and it
returns the string that represents the version information of the
browser.
32. What are the types of Pop up boxes available in JavaScript?
There are three types of pop boxes available in JavaScript.
Alert
Confirm
Prompt
33. What is the use of void(0) ?
The void(0) is used to call another method without refreshing the
page during the calling time parameter “zero” will be passed.
34. What are JavaScript modules, and how do you import/export
them?
JavaScript modules allow you to split your code into smaller,
reusable pieces. They enable the export of variables, functions, or
objects from one file and the import of them into another. To
export an element, you use export (either named or default). To
import it, you use import.
1
// In [Link]
2
export const greet = () => "Hello";
3
4
// In [Link]
5
import { greet } from './file1';
6
[Link](greet());
Modules help organize code and avoid global namespace
pollution. They are natively supported in modern JavaScript
through import and export statements.
35. What are WeakMap and WeakSet, and how are they different
from Map and Set?
A WeakMap is a collection of key-value pairs where keys are
objects and the values can be any data type. The key-value pairs
in a WeakMap are “weakly” held, meaning if no other references
to a key exist, the entry can be garbage collected. A WeakSet is a
collection of unique objects, and like WeakMap, the objects are
weakly held.
The main difference from Map and Set is that in Map and Set,
entries are strongly held, meaning they prevent garbage
collection, while in WeakMap and WeakSet, entries can be
garbage collected if no other references to the objects exist.
36. What is the role of the setImmediate function in [Link], and
how is it different from setTimeout?
In [Link], the setImmediate() function schedules a callback to be
executed in the next iteration of the event loop, after the current
event handling phase. It’s commonly used to execute I/O tasks
after the current operation completes.
The key difference between setImmediate() and setTimeout() is
that setImmediate() runs after the I/O events in the event loop,
while setTimeout() runs after a specified delay (even if the event
loop is still busy). setTimeout() schedules tasks with a minimum
delay, while setImmediate() executes as soon as the event loop is
free.
For further reading, check out our dedicated article on
Intermediate Javascript Interview Questions. Inside, you’ll
discover over 20 questions with detailed answers.
JavaScript Interview Questions for Experienced
37. What is the ‘Strict’ mode in JavaScript and how can it be
enabled?
Strict Mode is a new feature in ECMAScript 5 that allows you to
place a program or a function in a “strict” operating context. This
strict context prevents certain actions from being taken and
throws more exceptions. The statement “use strict” instructs the
browser to use the Strict mode, which is a reduced and safer
feature set of JavaScript.
38. What are the advantages and disadvantages of using
async/await over traditional callbacks or promises?
Advantages of async/await:
Improved readability: Async/await makes asynchronous code look
like synchronous code, making it easier to read and maintain.
Simplified error handling: With try/catch, error handling is more
straightforward compared to .catch() with promises or callback-
based error handling.
Avoids
callback hell
: It eliminates deeply nested callbacks, reducing complexity in
asynchronous logic.
Disadvantages of async/await:
Requires modern JavaScript: It’s supported in ES2017 and above,
so older environments may need transpiling.
Limited concurrency control: Unlike promises with .all() or .race(),
async/await can be less flexible for handling multiple parallel
tasks.
39. How to explain closures in JavaScript and when to use it?
The closure is created when a child functions to keep the
environment of the parent’s scope even after the parent’s
function has already executed. The Closure is a locally declared
variable related to a function. The closure will provide better
control over the code when using them.
1
function foo() {
2
let b = 1;
3
function inner() {
4
return b;
5
}
6
return inner;
7
}
8
let get_func_inner = foo();
9
10
[Link](get_func_inner());
11
[Link](get_func_inner());
12
[Link](get_func_inner());
Output
1
1
1
40. What is the difference between call() and apply() methods ?
Both methods are used in a different situation
call() Method: It calls the method, taking the owner object as
argument. The keyword this refers to the ‘owner’ of the function
or the object it belongs to. We can call a method that can be used
on different objects.
apply() Method: The apply() method is used to write methods,
which can be used on different objects. It is different from the
function call() because it takes arguments as an array.
[Link] to target a particular frame from a hyperlink in
JavaScript ?
This can be done by using the target attribute in the hyperlink.
Like
<a href="/[Link]" target="newframe">New
Page</a>
42. Write the errors shown in JavaScript?
There are three different types of errors in JavaScript.
Syntax error
: A syntax error is an error in the syntax of a sequence of
characters or tokens that are intended to be written in a particular
programming language.
Logical error: It is the most difficult error to be traced as it is the
error on the logical part of the coding or logical error is a bug in a
program that causes to operate incorrectly and terminate
abnormally.
Runtime Error
: A runtime error is an error that occurs during the running of the
program, also known as an exception.
43. What is the difference between JavaScript and Jscript?
JavaScript
It is a scripting language developed by Netscape.
It is used to design client and server-side applications.
It is completely independent of Java language.
Jscript
It is a scripting language developed by Microsoft.
It is used to design active online content for the word wide Web.
44. How many ways an HTML element can be accessed in
JavaScript code?
There are four possible ways to access HTML elements in
JavaScript which are:
getElementById() Method:
It is used to get the element by its id n