0% found this document useful (0 votes)
4 views

JavaScript_Interview_QA

The document provides a comprehensive overview of key JavaScript concepts, including differences between equality operators, closures, prototypal inheritance, the event loop, and hoisting. It also covers asynchronous programming, error handling, and various function-related topics like callbacks, promises, and arrow functions. Additionally, it explains advanced concepts such as memoization, currying, and the module pattern.

Uploaded by

anmolmndr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

JavaScript_Interview_QA

The document provides a comprehensive overview of key JavaScript concepts, including differences between equality operators, closures, prototypal inheritance, the event loop, and hoisting. It also covers asynchronous programming, error handling, and various function-related topics like callbacks, promises, and arrow functions. Additionally, it explains advanced concepts such as memoization, currying, and the module pattern.

Uploaded by

anmolmndr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Q: What is the difference between == and ===?

A: == checks for value equality and converts types if needed. === checks for both value and type.

Example: '5' == 5 // true, '5' === 5 // false

Q: Explain closures in JavaScript.

A: A closure is a function that remembers its outer variables even after the outer function has

finished.

Example:

function outer() {

let count = 0;

return function inner() {

count++;

return count;

};

Q: How does prototypal inheritance work?

A: Objects can inherit properties from other objects via their prototype.

Example:

let parent = { greet: function() { return 'hello'; } };

let child = Object.create(parent);

child.greet(); // 'hello'

Q: What is the event loop in JavaScript?

A: The event loop handles async operations. It places them in the queue and runs them when the

call stack is empty.

Q: Explain the concept of hoisting.

A: Hoisting means variable and function declarations are moved to the top of their scope before

code runs.

Example: console.log(a); var a = 5; // undefined


Q: What are the differences between var, let, and const?

A: var is function-scoped, let and const are block-scoped. const can't be reassigned.

Q: How does this keyword work in JavaScript?

A: 'this' refers to the object that is calling the function. Its value depends on how the function is

called.

Q: What is the purpose of the use strict directive?

A: It helps catch common coding mistakes and prevents unsafe actions.

Q: Explain the difference between synchronous and asynchronous code in JavaScript.

A: Synchronous code runs in order. Asynchronous code can run later, allowing other tasks to

continue meanwhile.

Q: What are Promises and how do they work?

A: Promises represent a value that may be available now or in the future.

Example:

new Promise((resolve) => resolve('done')).then(data => console.log(data));

Q: How does the async/await syntax work?

A: It allows writing asynchronous code in a synchronous style using 'await' to wait for Promises.

Q: What is the difference between null and undefined?

A: null is an assigned value. undefined means a variable hasn't been assigned a value yet.

Q: Explain the concept of callback functions.

A: A callback is a function passed as an argument to another function to be called later.

Q: What is the difference between forEach() and map()?

A: forEach() just iterates, map() returns a new array with results.

Example: [1,2,3].map(x => x * 2); // [2,4,6]

Q: How do you handle errors in JavaScript?

A: Use try...catch blocks or catch method in Promises.

Q: What is the purpose of the bind() method?

A: bind() sets the value of 'this' for a function and returns a new function.
Q: Explain the concept of event bubbling and capturing.

A: Bubbling: events go from child to parent. Capturing: from parent to child. You can choose phase

using addEventListener.

Q: What is memoization and how can it be implemented in JavaScript?

A: Memoization stores function results to avoid repeated calculations.

Example:

const memo = {}; function fib(n) {

if (n in memo) return memo[n];

if (n <= 1) return n;

return memo[n] = fib(n-1) + fib(n-2);

Q: How does JavaScript handle asynchronous programming?

A: Using callbacks, Promises, async/await, and the event loop.

Q: What are arrow functions and how do they differ from regular functions?

A: Arrow functions don't have their own 'this' and can't be used as constructors.

Q: Explain the concept of debouncing and throttling.

A: Debouncing: delays function call until pause in input. Throttling: ensures function is called at most

once in a time frame.

Q: What is the difference between Object.create() and the constructor pattern?

A: Object.create() creates a new object with a specified prototype. Constructor uses 'new' keyword

to set up prototype and properties.

Q: How does the module pattern work in JavaScript?

A: It encapsulates code using IIFE or modules to avoid polluting the global scope.

Q: What are generator functions and how are they used?

A: Generators can pause and resume with 'yield'.

Example:

function* gen() { yield 1; yield 2; }


Q: Explain the concept of currying in JavaScript.

A: Currying converts a function with multiple arguments into a series of functions taking one

argument each.

Q: How does the setTimeout() function work?

A: It schedules a function to run after a delay.

Example: setTimeout(() => console.log('Hi'), 1000);

Q: What is the purpose of the Array.prototype.reduce() method?

A: It reduces an array to a single value using a function.

Example: [1,2,3].reduce((a,b) => a + b, 0);

Q: How do you clone an object in JavaScript?

A: Use Object.assign({}, obj) or spread {...obj} or structuredClone(obj).

Q: What is the difference between call(), apply(), and bind()?

A: call and apply call the function immediately, bind returns a new function. apply uses array of

arguments.

Q: Explain the concept of lexical scope in JavaScript.

A: Lexical scope means a variable's scope is defined by its position in code when it's written.

You might also like