Table of contents
- 1. Differentiate between var, let, and const
- 2. What is Hoisting in JS? Are let and const Hoisted?
- 3. What are callbacks?
- 4. Differentiate between Function Statement and Function Expression
- 5. What is a First Class Function?
- 6. What is an IIFE?
- 7. What are Closures?
- 8. Differentiate between Parameters and Arguments
- 9. What is Scope?
- 10. What is a Temporal Dead Zone?
- Wrapping Up
JavaScript is one of the most important languages asked during almost all the interviews related to frontend or backend development. So I have prepared a list of 10 questions that I think everyone must know along with their answers and explanation in my own words to make you understand them easily.
1. Differentiate between var, let, and const
The different types in which we can declare a variable can be differentiated based on various parameters.
Scope: Scope is the region in which a JS variable or function can be accessed. var is said to be global scoped, whereas let and const are block scoped.
A block is a piece of code enclosed between curly braces. { code }
Hoisting: var is hoisted and initialized with "undefined". Whereas let and const are hoisted but not initialized.
A more detailed explanation could be found here.
2. What is Hoisting in JS? Are let and const Hoisted?
JavaScript has a special feature that lets us access a variable or function before it is initialized. The code in JS is executed in two phases:
- Memory creation phase
- Execution or initialization phase
In the memory creation phase, all the variables are assigned memory locations, which makes it possible to access the variables or functions.
Just like var, let and const are also hoisted. The difference in their hoisting is that var is initialized with "undefined" whereas let and const are not initialized.
A more detailed explanation could be found here.
3. What are callbacks?
Callback functions are functions that can be passed as arguments to other functions. They are a useful tool to make JS work asynchronously. Callbacks are widely used in JS and JS-related frameworks.
A more detailed explanation of callbacks could be found here.
You should also read about Promises and Async/Await which replaced callbacks for Asynchronous JS.
4. Differentiate between Function Statement and Function Expression
A Function Declaration or Statement is the normal declaration of a function using the "function" keyword without assigning it to a variable.
A Function Expression is the assignment of a function to a variable. The function assigned is an anonymous function.
Note: A Function Declaration is hoisted while a Function Expression is not.
A more detailed explanation could be found here.
5. What is a First Class Function?
If a Programming language treats its functions as variables, which means its function can be passed as arguments, assigned to a variable, or returned from another function, it is said to have First Class Functions.
A more detailed explanation could be found here.
6. What is an IIFE?
Immediately Invoked Function Expression or IIFE are anonymous functions which are executed immediately when encountered. They do not require a call explicitly.
They are mainly used to create Closures and to avoid polluting the Global namespace as they have their own scope.
A more detailed explanation could be found here.
7. What are Closures?
Closures are one of the most important topics asked during a JS interview.
A function bundled with its lexical environment or scope is known as a closure. When a variable is required, its value is acquired from the value available nearest in its scope.
If a function is returned from a function, its required scope variables are also bundled along with it. This is possible because of Closures.
A more detailed explanation could be found here.
8. Differentiate between Parameters and Arguments
Parameters are the local variables or labels which act as containers for the values passed to a function.
Arguments are the values that are passed to a function at the time of calling.
Sometimes Arguments and Parameters are used interchangeably which is wrong.
9. What is Scope?
The scope is defined as the range up to which variables and functions can be accessed in a code from a particular point in the code.
The Scope in JS is usually of three types, the block scope, the function or local scope, and the global scope.
A more detailed explanation could be found here.
10. What is a Temporal Dead Zone?
Temporal Dead Zone is the zone between the declaration and initialization of let and const variable types.
If we try to access let or const in this zone, we get a Reference Error.
A more detailed explanation could be found here.
Wrapping Up
This list does not cover all of the topics but focuses more on questions that are generally asked during Interviews.
One of the good resources which I recommend for JS interviews is the Namaste JavaScript Playlist on YouTube which will clear your concepts thoroughly and prepare you for your Interviews.
Thanks for reading. You can share this post with your peers if you found it useful. Any Corrections or Suggestions are welcome.
Comment down questions that you think should be in the top 10 list.
Keep Hustling!