60+ JavaScript Interview Questions To Prepare For In 2024
Today, most web applications, including Google and Facebook, use JavaScript. It has also become one of the most popular languages for building server-side software since the Node.js launch. Even today, the web is not large enough to hold JavaScript's versatility. The fact that you have found this JavaScript Interview Questions article means you already know about these facts.
Thus, if you are considering starting a career in JavaScript and need to acquire related skills, now is the perfect time to get involved. These JavaScript Interview Questions will equip you with in-depth knowledge and enable you to prepare for your interview.
Learning Javascript is highly recommended since it is extensively used for front-end development, web design, game development, and graphics creation.
Top JavaScript Interview Questions & Answers
- Beginner JavaScript Interview Questions
- Intermediate JavaScript Questions
- Advanced JavaScript Questions
Beginner JavaScript Interview Questions
1. What is JavaScript?
JavaScript is a lightweight, interpreted scripting language used to create dynamic and interactive content on web pages.
2. What are the features of JavaScript?
- Interpreted and lightweight
- Cross-platform scripting language
- Designed for network-centric applications
- Complementary to Java
3. What data types does JavaScript support?
- Boolean
- Object
- Undefined
- Number
- Symbol
- Null
- String
4. What are the advantages of JavaScript?
- Rich Interfaces: Enables drag-and-drop and sliders.
- Reduced Server Interaction: Validates input before sending data to the server.
- Immediate Feedback: Provides real-time feedback without reloading.
- Enhanced Interactivity: Creates interfaces that respond to user actions.
5. How can you create an object in JavaScript?
You can use the object literal syntax:
var emp = { name: "Daniel", age: 23};
6. How can you create an array in JavaScript?
You can use the array literal syntax:
var x = []; var y = [1, 2, 3, 4, 5];
7. Is JavaScript case-sensitive?
Yes, JavaScript is case-sensitive. For example, Test
and test
are treated as different identifiers.
8. What is a Named Function in JavaScript?
A named function is defined using the function
keyword and a specific name:
function namedFunction() { console.log('Hello, World!'); }
Intermediate JavaScript Questions
9. What is hoisting in JavaScript?
Hoisting moves declarations to the top of their scope.
console.log(x); // undefinedvar x = 5; greet(); // 'Hello!'function greet() { console.log('Hello!'); }
10. Why do we use the “debugger” keyword in JavaScript?
The debugger
keyword pauses code execution, allowing developers to inspect variables and step through code.
11. Explain Implicit Type Coercion in JavaScript.
JavaScript automatically converts types during operations.
console.log('5' + 1); // "51" (string concatenation)console.log('5' - 1); // 4 (string to number)
12. What is Closure in JavaScript?
A closure allows a function to access variables from its outer scope, even after the outer function has returned.
function makeCounter() { let count = 0; return function() { count++; return count; }; } const counter = makeCounter(); console.log(counter()); // 1console.log(counter()); // 2
13. What are Object Prototypes?
Prototypes enable inheritance in JavaScript.
function Person(name) { this.name = name; } Person.prototype.greet = function() { console.log('Hello, ' + this.name); }; const john = new Person('John'); john.greet(); // 'Hello, John'
14. What are Higher Order Functions?
Functions that take other functions as arguments or return functions as results.
function greet(name) { return function() { console.log('Hello ' + name); }; } const greetJames = greet('James'); greetJames(); // 'Hello James'
15. Explain Currying in JavaScript.
Currying breaks a function with multiple arguments into smaller functions that take one argument at a time.
function multiply(a) { return function(b) { return a * b; }; } const double = multiply(2); console.log(double(5)); // 10
16. What is an Immediately Invoked Function Expression (IIFE)?
An IIFE runs immediately after it is defined.
javascriptCopy code(function() { console.log('IIFE executed'); })();
17. What is the difference between exec() and test()?
exec()
: Returns an array of matches ornull
.test()
: Returnstrue
orfalse
.
const regex = /hello/; console.log(regex.exec("hello world")); // ["hello"]console.log(regex.test("hello world")); // true
18. How does the typeof
operator work?
The typeof
operator returns the data type of its operand.
console.log(typeof 42); // "number"console.log(typeof 'Hello'); // "string"
Advanced JavaScript Questions
19. How do you read and write cookies in JavaScript?
- Write:
document.cookie = "username=JohnDoe; expires=Fri, 31 Dec 2024 12:00:00 UTC";
- Read:
console.log(document.cookie);
20. What is Event Bubbling?
Event bubbling propagates events from the innermost to the outermost element.
21. How are primitive and object types passed in functions?
- Primitives: Passed by value.
- Objects: Passed by reference.
function modify(obj) { obj.name = "Modified"; } const person = { name: "John" }; modify(person); console.log(person.name); // Modified
22. What is the difference between ==
and ===
?
==
: Compares values after type coercion.===
: Strictly compares values and types.
console.log(5 == '5'); // trueconsole.log(5 === '5'); // false
23. What is the purpose of the this
operator in JavaScript?
The this
operator refers to the object to which it belongs. Its value depends on where it is used:
- Inside a method: Refers to the owner object.
- In a function: Refers to the global object (
window
in browsers).
24. What are the scopes of a variable in JavaScript?
JavaScript variables have two types of scopes:
- Global Scope: Variables defined outside any function.
- Local Scope: Variables defined inside a function.
25. What are argument objects in JavaScript?
The arguments
object is an array-like object accessible inside functions that contains the values of the arguments passed to that function.
function example(a, b) { console.log(arguments[0]); // Output: value of `a` console.log(arguments[1]); // Output: value of `b`}
26. What are the variable naming conventions in JavaScript?
- Must not use JavaScript-reserved keywords (e.g.,
break
,boolean
). - Cannot start with a number (e.g.,
123name
is invalid). - Variable names are case-sensitive (
Test
andtest
are different).
27. How to create a cookie using JavaScript?
You can create a cookie by assigning a string to the document.cookie
object:
document.cookie = "username=JohnDoe; expires=Fri, 31 Dec 2024 12:00:00 UTC";
28. How to delete a cookie using JavaScript?
To delete a cookie, set its expiration date to a past date:
document.cookie = "username=JohnDoe; expires=Thu, 01 Jan 1970 00:00:00 UTC";
29. What is the difference between null and undefined in JavaScript?
undefined
: A variable that has been declared but not assigned a value.null
: An explicit assignment indicating "no value."
let a; console.log(a); // undefined let b = null; console.log(b); // null
30. What is the difference between innerHTML
and innerText
?
innerHTML
: Includes HTML tags as part of the output.innerText
: Returns the visible text only.
31. What is the difference between Local Storage and Session Storage?
- Local Storage: Data persists even after the browser is closed.
- Session Storage: Data is cleared once the session ends (e.g., closing the browser).
32. What is NaN in JavaScript?
NaN
stands for "Not-a-Number" and is returned when a mathematical operation fails.
console.log(0 / 0); // NaNconsole.log(parseInt("hello")); // NaN
33. What is an event bubbling in JavaScript?
Event bubbling allows events to propagate from the innermost target element to the outermost elements.
34. What are escape characters in JavaScript?
Escape characters allow special characters to be used in strings without causing errors. For example:
\n
for a new line\"
for a double quote
let text = "She said, \"Hello!\""; console.log(text);
35. What are Exports and Imports in JavaScript?
Exports and imports allow you to create modular code by splitting functionalities across files.
// lib.jsexport const square = (x) => x * x; // main.jsimport { square } from './lib.js'; console.log(square(5)); // 25
36. How many ways can JavaScript code be included in an HTML file?
- Inline: Inside an HTML tag's
onclick
or other event attributes. - Internal: Within a
<script>
tag in the HTML file. - External: Referencing an external
.js
file.
37. What is the Strict mode in JavaScript?
Strict mode enforces stricter parsing and error handling for your code.
"use strict"; let x = 3.14; // Worksy = 3.14; // Error: `y` is not declared
38. What is the difference between call() and apply()?
Both are used to invoke functions with a specific this
value, but they differ in how arguments are passed:
call()
: Passes arguments individually.apply()
: Passes arguments as an array.
const person = { fullName: function(city, country) { return this.firstName + " " + this.lastName + ", " + city + ", " + country; } }; const person1 = { firstName: "John", lastName: "Doe" }; console.log(person.fullName.call(person1, "Oslo", "Norway")); console.log(person.fullName.apply(person1, ["Oslo", "Norway"]));
39. What is QuickSort Algorithm in JavaScript?
QuickSort is a divide-and-conquer algorithm that sorts by partitioning an array into smaller sub-arrays.
40. What is a prompt box in JavaScript?
A prompt box allows the user to enter input via a dialog box.
let name = prompt("Please enter your name", "Harry Potter"); console.log(name);
41. What is the difference between the operators ==
and ===
?
==
compares values after type coercion.===
compares values and types strictly.
42. How do JavaScript frameworks differ from libraries?
JavaScript Frameworks like React and Angular dictate the architecture of applications, while libraries like jQuery provide specific functionality.
43. How to use typeof
in JavaScript?
The typeof
the operator determines the type of a variable.
console.log(typeof 42); // numberconsole.log(typeof "Hello"); // stringconsole.log(typeof undefined); // undefined
44. What is currying in JavaScript?
Currying transforms a function with multiple arguments into multiple functions with one argument each.
45. What are object prototypes?
Prototypes enable inheritance, allowing objects to share properties and methods.
46. What are the practical uses of closures?
Closures are used for:
- Data encapsulation
- Memoization
- Event handlers
47. What is the difference between undefined
and undeclared
variables?
undefined
: Variables that are declared but not assigned a value.undeclared
: Variables that have not been declared at all.
let x; console.log(x); // undefinedconsole.log(y); // ReferenceError: y is not defined
48. How to delete a property from an object in JavaScript?
Use the delete
operator to remove a property.
const obj = { name: "John", age: 30 }; delete obj.age; console.log(obj); // { name: "John" }
49. What are the differences between var
, let
, and const
?
var
: Function-scoped, can be redeclared.let
: Block-scoped, cannot be redeclared.const
: Block-scoped, read-only.
var x = 5; let y = 10; const z = 15;
50. What is the eval()
function in JavaScript?
eval()
executes JavaScript code passed as a string.
let code = "console.log('Hello World')"; eval(code); // Outputs: Hello World
51. What are promises in JavaScript?
Promises represent the eventual completion or failure of an asynchronous operation.
let promise = new Promise((resolve, reject) => { let success = true; success ? resolve("Done") : reject("Failed"); }); promise.then((result) => console.log(result)); // Done
52. What is async
and await
in JavaScript?
async
/await
simplifies working with promises and asynchronous code.
async function fetchData() { const response = await fetch("https://api.example.com"); const data = await response.json(); console.log(data); }
53. What is a debounce function?
A debounce function delays the execution of a function until a specified time has passed since the last invocation.
function debounce(func, delay) { let timer; return function (...args) { clearTimeout(timer); timer = setTimeout(() => func.apply(this, args), delay); }; }
54. What is throttling in JavaScript?
Throttling ensures a function is called at most once every specified interval.
function throttle(func, limit) { let inThrottle; return function (...args) { if (!inThrottle) { func.apply(this, args); inThrottle = true; setTimeout(() => (inThrottle = false), limit); } }; }
55. What is the difference between call()
, apply()
, and bind()
?
call()
: Calls a function with arguments provided individually.apply()
: Calls a function with arguments provided as an array.bind()
: Returns a new function withthis
bound to a specific value.
function greet(greeting, punctuation) { console.log(`${greeting}, ${this.name}${punctuation}`); } const person = { name: "John" }; greet.call(person, "Hello", "!"); // Hello, John!greet.apply(person, ["Hi", "."]); // Hi, John.const boundGreet = greet.bind(person, "Hey"); boundGreet("?"); // Hey, John?
56. What is event delegation in JavaScript?
Event delegation allows you to attach a single event listener to a parent element and use it to handle events on its child elements.
document.getElementById("parent").addEventListener("click", function (event) { if (event.target && event.target.tagName === "BUTTON") { console.log("Button clicked:", event.target.innerText); } });
57. What is the difference between synchronous and asynchronous JavaScript?
- Synchronous: Code is executed sequentially.
- Asynchronous: Code execution does not block subsequent operations.
console.log("Start"); setTimeout(() => console.log("Async Operation"), 1000); console.log("End"); // Output: Start, End, Async Operation
58. What are the key differences between window
and document
objects?
window
: Represents the browser's window.document
: Represents the HTML content loaded into the browser.
59. What is the JSON.stringify()
and JSON.parse()
method?
JSON.stringify()
: Converts a JavaScript object into a JSON string.JSON.parse()
: Converts a JSON string back into a JavaScript object.
const obj = { name: "John", age: 30 }; const jsonString = JSON.stringify(obj); const parsedObj = JSON.parse(jsonString);
60. What is the difference between shallow copy and deep copy in JavaScript?
- Shallow Copy: Only copies the first level of an object.
- Deep Copy: Copies all levels of an object, including nested objects.
// Shallow Copylet obj = { a: 1, b: { c: 2 } }; let shallowCopy = Object.assign({}, obj); shallowCopy.b.c = 5; console.log(obj.b.c); // 5 (changed) // Deep Copylet deepCopy = JSON.parse(JSON.stringify(obj)); deepCopy.b.c = 10; console.log(obj.b.c); // 2 (unchanged)
61. What is Promise.all()
in JavaScript?
Promise.all()
runs multiple promises concurrently and resolves when all promises resolve or rejects if any promise fails.
const promise1 = Promise.resolve(3); const promise2 = 42; const promise3 = new Promise((resolve, reject) => setTimeout(resolve, 100, "foo")); Promise.all([promise1, promise2, promise3]).then((values) => console.log(values)); // [3, 42, "foo"]
62. What are Web Workers in JavaScript?
Web Workers allow you to run JavaScript code in the background, separate from the main thread, improving performance for heavy tasks.
Final Tips for JavaScript Interview Preparation
- Understand core concepts: Know about hoisting, closures, and prototypes.
- Coding problems: Practice via coding challenge on LeetCode or HackerRank.
- Familiarize yourself with the ES6+ Features: Learn to be conversant about the modern JavaScript features; arrow functions, destructuring, and async/await
- Debugging Skills: Learn how to succeed in using debugging tools by doing so from within the browsers
- Mock Interviews: Practice mock interviews either by conducting them with fellow students or by using the mock interview preparation platforms.
People are also reading: