1-what is javascript?

JS typically refers to JavaScript, which is a high-level, interpreted programming language used primarily for web development. JavaScript enables developers to add interactive elements, dynamic content, and behavior to websites, making it an essential tool for creating modern web applications.

2-What are the different data types present in javascript?

Primitive Data Types :

  • Number
  • String
  • Boolean
  • Null
  • Undefined
  • Symbol

Non-Primitive Data Types :

  • Object
  • Array
  • Function
  • Date
  • RegExp

2- Explain Let vs Const javascript.


  • Variables declared with let have block-level scope. This means that they are only accessible within the block of code where they are declared, such as inside a loop or if statement block.
  • Variables declared let can be reassigned to a new value after declaration. They are mutable.
  • If you declare the same variable let twice in the same scope, it will result in an error (redeclaration is not allowed).


  • Variables declared with const also have the block-level scope, like let.
  • Variables declared with const cannot be reassigned after declaration.
  • f you try to reassign a value to a const variable, it will result in an error.
  • Constants must be initialized at the time of declaration; you cannot declare a const variable without assigning a value.

3-Explain Hoisting in javascript.

Hoisting is a behavior in JavaScript where variable and function declarations are moved to the top of their containing scope during the compilation phase.

Hoisting of Variable Declarations:

Hoisting of Function Declarations:

4-Difference between “ == “ and “ === “ operators

Double Equals (==) Operator:

  • The double equals operator performs a loose or type-converting comparison. It attempts to convert the operands to the same type before making the comparison.
  • If the operands are of different data types, JavaScript will try to convert them to a common type to make the comparison.
  • The comparison using == may lead to unexpected results due to type coercion.

Triple Equals (===) Operator:

  • The triple equals operator performs a strict comparison. It checks both the value and the type of the operands without any type coercion.
  • It returns true only if the values and data types of the operands are the same.
  • Using === is generally considered safer and more predictable than using ==.
  • Example:

5-Explain Implicit Type Coercion in javascript .

String and Number Concatenation: When you use the + operator with a string and a number, JavaScript converts the number to a string and performs string concatenation.

6-What is the NaN property in JavaScript?

In JavaScript, NaN stands for “Not-a-Number.”.When a mathematical operation or function involving numbers fails to produce a meaningful result, JavaScript returns NaN to indicate that the result is not a valid number.

7-Explain passed by value and passed by reference.

Passed by Value:

  • In “passed by value” or “call by value” semantics, the actual value of the variable is passed to the function or assigned to another variable.
  • If you modify the value inside the function or the new variable, it does not affect the original variable.

Passed by Reference:

  • In “passed by reference” semantics, a reference to the memory location of the variable (or object) is passed to the function or assigned to another variable.
  • If you modify the object’s properties or contents inside the function or the new variable, it affects the original object because they both refer to the same memory location.

8-What is an Immediately Invoked Function in JavaScript?
An Immediately Invoked Function Expression (IIFE) is a JavaScript design pattern that allows you to create and execute a function immediately after its declaration. It’s also known as a self-invoking function or a self-executing anonymous function.

9-Explain Higher Order Functions in javascript.

In JavaScript, Higher Order Functions (HOFs) are functions that can take other functions as arguments and/or return functions as their results.Higher Order Functions enable a functional programming style in JavaScript, where functions can be used as building blocks to compose more complex and reusable code. They provide a powerful way to abstract and generalize behavior, making the code more concise and expressive.

10-Explain call(), apply() and, bind() methods.


  • The call() method is used to invoke a function with a specified this value and arguments provided individually.
  • It takes the this value as the first argument and the function arguments separated by commas.


  • The apply() method is similar to call(), but it takes the this value as the first argument and an array (or array-like object) of arguments as the second argument.


  • The bind() method returns a new function with a specific this value and, optionally, predefined arguments. Unlike call() and apply(), bind() does not immediately execute the function; instead, it returns a new function that can be invoked later.

11-What is the difference between exec () and test () methods in javascript?

In JavaScript, both exec() and test() are methods available on regular expressions (RegExp objects) used for pattern matching.

exec() method:

The exec() method is used to execute a regular expression against a specified string and returns an array of information about the first match found.

test() method:

  • The test() method is used to test whether a regular expression matches any part of a specified string.
  • It returns a Boolean value (true or false) indicating whether the pattern matches any part of the string.

12-What is currying in JavaScript?

Currying is a functional programming technique in JavaScript that involves transforming a function that takes multiple arguments into a series of functions, each taking a single argument. The process of currying allows you to create more specialized and reusable functions.

13-Explain Closures in JavaScript?

Closures are a powerful and fundamental concept in JavaScript. A closure is a function that has access to variables from its containing (outer) function, even after the outer function has finished executing.

14-What are object prototypes?

In JavaScript, object prototypes play a crucial role in the language’s object-oriented programming paradigm. Prototypes are the mechanism by which objects inherit properties and methods from other objects, forming a prototype chain. Every object in JavaScript has a prototype, which serves as a blueprint for the object’s structure and behavior.

Prototype Object: Every object in JavaScript is associated with a prototype object. The prototype object contains properties and methods that are shared among all objects created from the same constructor function or class.

15-What are callbacks?

Callbacks are functions passed as arguments to other functions and executed later once the containing function has completed its task. In other words, callbacks are a way to ensure that a particular function is executed after another function has finished its operation. Callbacks are a fundamental concept in asynchronous programming in JavaScript, as they allow you to handle asynchronous tasks and control the flow of execution.

Callbacks are commonly used in::

  1. Event Handling
  2. Flow Control
  3. Asynchronous Operations

16-What is memorization?

Memoization is an optimization technique used in computer programming to improve the performance of functions by caching the results of expensive function calls and returning the cached result when the same inputs occur again. The main goal of memoization is to avoid redundant and repetitive computations by storing the calculated results for specific inputs and reusing them when needed.

17-What are arrow functions?

Arrow functions were introduced in ECMAScript 6 (ES6) and have become a popular feature in modern JavaScript development. rrow functions, also known as “fat arrow” functions, are a concise and modern syntax for writing functions in JavaScript. They provide a shorter and more readable way to define functions compared to traditional function expressions.

18-What is the rest parameter and spread operator?

Rest Parameter (...args): The rest parameter is used in function declarations to represent an indefinite number of arguments as an array. It allows you to pass a variable number of arguments to a function and capture them all into a single array parameter.

Spread Operator (...array): The spread operator is used to expand an array into individual elements. It is the opposite of the rest parameter and is used in function calls, array literals, and object literals to unpack elements from an array or object.

19-What is the use of promises in javascript?
Promises are a fundamental feature in modern JavaScript used to handle asynchronous operations in a more structured and readable way. They provide a cleaner alternative to traditional callback-based approaches for handling asynchronous tasks, such as making API calls, reading files, or executing database queries.

Benefits and uses of promises in JavaScript:

Error Handling

Avoiding Callback Hell

Encouraging Asynchronous Code

20-What is Object Destructuring?

object destructuring is a feature introduced in ECMAScript 6 (ES6) that allows you to extract individual properties from an object and assign them to variables in a more concise and readable way. It provides a convenient method to access and work with object properties without having to use the verbose dot notation for each property.

21-What is a Temporal Dead Zone?

The Temporal Dead Zone (TDZ) is a concept in JavaScript that refers to the period between the start of a scope (such as a block, function, or module) and the point where a variable is declared with let, const, or class. During this period, accessing the variable results in a ReferenceError.

22-Explain map() vs foreach()

map() and forEach() are two array methods in JavaScript used for iterating over arrays.


  • map() is a method that creates a new array by calling a provided callback function for each element in the array.
  • It returns a new array with the results of the callback function applied to each element in the original array.
  • It does not modify the original array.


  • forEach() is a method that executes a provided callback function once for each element in the array in ascending order.
  • It does not return a new array; instead, it modifies the existing array in place.

23-Explain filter() and reduce().


  • The filter() method creates a new array with all elements that pass the test implemented by the provided callback function.
  • It returns a new array containing only the elements that satisfy the condition defined in the callback function.


  • The reduce() method applies a provided callback function against an accumulator and each element in the array to reduce it to a single value.
  • It takes an initial value for the accumulator as the second argument.
  • reduce() is used when you want to perform calculations on an array and obtain a single value as the result, such as summing all elements or finding the maximum value.