
JavaScript
Basic Interview Q&A
1. What is JavaScript?
JavaScript is a lightweight, interpreted, object-oriented scripting language. It allows you to build interactivity into static HTML pages. Netscape, Internet Explorer, and other web browsers include the language's general-purpose core.
2. What are the benefits of JavaScript over other web-based technologies?
These are the benefits of JavaScript:
Interactive Enhancement
JavaScript interacts with static web pages and makes them respond to users' inputs.
Quick Feedback
There is no reason for a page on the internet to load again when using JavaScript. For example, form input validation.
Rich User Interface
JavaScript assists in making the user interface of web-based applications look and feel better.
Frameworks
JavaScript has vast libraries and frameworks that can be widely used to develop games and web-based applications.
3. What are the features of JavaScript?
These are some of the features of JavaScript:
- Cross-platform compatible
- Open-source
- Object-oriented
- Integration with various front-end and back-end technologies
4. When should generators be used in ES6?
Generators in ES6 can be used in two main scenarios:
When one wants to move out of a function, one can do so using generators, and the outer code determines when to move back into the function.
With the help of generators, one can control an asynchronous call outside the code. Most importantly, though, the next value can come in only when needed; all values do not need to come back at once
5. Why are promises used in JavaScript?
Promises help in managing asynchronous operations, such as server requests in JavaScript. Earlier, callbacks were used for the same purpose. However, callbacks have limited functionality and, thus, can make the code unmanageable. There are four states of the promise object:
Pending: This is the first state of the promise and shows that the promise has been neither fulfilled nor rejected.
Fulfilled: This state represents the completion of the asynchronous operation. In other words, the promise has been fulfilled.
Rejected: This state represents the failure of the asynchronous operation due to some reason. In other words, the promise has been rejected.
Settled: This is the last state of the promise, showing that the promise has been either fulfilled or rejected.
A promise constructor uses a callback with two parameters - resolve and reject - to create a promise. The resolve function is called when the asynchronous operation has succeeded. The reject function is called when the asynchronous operation has failed.
6. What are the different data types present in JavaScript?
There are three major data types present in JavaScript.
Primitive
- Numbers
- Strings
- Boolean
Composite
- Objects
- Functions
- Arrays
Trivial
- Null
- Undefined
7. Why are Arrow functions used almost everywhere?
Arrow functions are used everywhere because:
- Safety of scope: When the arrow function is used everywhere, it brings consistency of scope because the same thisObject is used everywhere. If by any chance, a standard function is used alongside the arrow function, there are chances of the scope getting mixed up.
- Compactness: As compared to the standard function, the arrow function is compact as it does away with the need for keywords, curly braces, parenthesis, etc. in certain cases. It is, therefore, easier to read and write.
- Clarity: When the arrow function is used everywhere, there is a certain consistency of scope. Thus, whenever a standard function is mixed with it, it stands out distinctly. The developer can therefore look for the next higher function to locate the thisObject.
8. Is JavaScript a dynamically typed or statically typed language?
JavaScript is a dynamically typed language.
9. Describe Arrow functions.
The ES6 Javascript version introduced Arrow functions. With the Arrow functions, we can declare functions using new and shorter syntax. These functions can only be used as function expressions. The declaration of these functions is done without using the function keyword. Moreover, if there is a single returning expression, then even the return keyword is not needed. Additionally, wherever the code occurs in a single line only, we can omit the curly {} braces. If there is only one argument in a function, then we can omit even the () parenthesis.
10. What are the main differences between Java and JavaScript?
Java is a general-purpose programming language that is class-based, whereas JavaScript is an interpreted scripting language. Java is used to create complete applications that may run on a single computer or be distributed among servers and clients in a network. JavaScript is used to create interactive webpages that may respond to user actions.
11. Which company developed JavaScript?
The language was developed by Brenden Eich in 1995 when he was working as an employee of netscape. He is also the founder of Mozilla foundation.
12. What are classes in Javascript?
Classes in Javascript are templates for building objects. Classes bind the data with code so that the data works as per the code. They were introduced in the ES6 version of Javascript and while they were created on prototypes, they also have syntax and semantics that are not common with ES5. Classes can be seen as special functions. There are two components of class syntax: class expressions and class declarations.
Class expressions are one of the ways to define classes. They may or may not have names. If a class expression has a name, it is held locally in the class body but can be accessed through the name property. Before using class expressions, one must declare them.
Another way to define classes is class declaration. For declaring a class, the class keyword must be followed by the class name.
One class may use the properties of methods of another class by using the extend keyword. Classes in Javascript must follow the strict mode. If the strict mode is not followed, errors will appear.
13. Explain rest parameter and spread operator.
The ES6 version of Javascript introduced the rest parameter and spread operator.
Rest Parameter
The use of three dots (...) before any parameter shows a rest parameter. This improves the handling of function parameters. With the help of the rest parameter, we can create such functions that can take a different number of arguments. By using the rest parameter, all these arguments will be converted into arrays. The rest parameter can also be used to extract any or all parts of an argument.
Spread Operator
Though the spread operator syntax is the same as that of the rest parameter, the spread operators help to spread arrays and object literals. Another use of spread operators is when one or more arguments are expected to be in a given function call. So, while the rest parameter creates an array, a spread operator spreads an array.
14. How can you create objects in JavaScript?
Because JavaScript is fundamentally an object-oriented scripting language, it encourages and supports using objects when developing web-based applications.

15. How can you make arrays in JavaScript?
Here's a simple method to create arrays with JavaScript using the array literal:

16. What is object destructuring?
Object destructuring is a JavaScript feature to extract object properties and bind these properties to variables. It can be used to extract several properties in a single statement and can reach properties from nested objects. When no property exists, object destructuring can set default values.
17. Which is faster, JavaScript or ASP script?
JavaScript is faster than ASP script, as it is a lightweight language that is designed to run quickly in the browser. However, ASP script can perform more complex tasks that JavaScript cannot, so it can be faster in certain situations.
18. Explain temporal dead zone.
Temporal dead zone (TDZ) was introduced for the first time in the ES6 version of JavaScript. TDZ is a behavior that occurs when a variable is accessed before it is initialized. It is a language construct that helps to catch errors as accessing data before initializing it is incorrect. When let and const keywords are used to declare variables a TDZ may occur.
19. What is WeakMap in JavaScript?
WeakMap object stores key-value pairs with weakly referenced keys. Keys in WeakMap must only be objects, while values can be arbitrary. Primitive data types cannot be keys in WeakMap. Since native WeakMap contains weakly referenced keys, these keys can be garbage collected and therefore references get removed. Also, because of the weak referencing, garbage collection of values in WeakMap is not prevented. When information about a key is valuable ‘only if’ the key is not garbage collected, WeakMap is useful in mapping keys to the information about them.
20. What are the rules for naming a variable in JavaScript?
The following are the conventions for naming variables in JavaScript:
- Variable names should not be identical to the reserved keywords. For example, var, let, const, etc.
- Variable names can't start with a numeric value. They should only begin with the letter or underscore character.
- Variable names have a case-sensitive nature.
21. What is WeakSet in Javascript?
WeakSet in Javascript is a collection of unique and orderly objects. Unlike Set, a WeakSet does not contain any other elements. Those objects of a collection that are weakly held, appear in WeakSet. This also means that if there is no reference for a weakly held object, it will be collected as garbage. There are three methods of WeakSet: add(), delete(), and has().
22. What is Callback in JavaScript?
In JavaScript, the functions are objects that can take different functions as arguments and be returned by other functions. A callback is a JavaScript function passed to another function as an argument, or parameter. This function is executed when the function that it is passed to gets executed.
23. How to debug JavaScript code?
Modern web browsers, such as Chrome, Firefox, etc., include a built-in debugger that can be opened anytime by pressing the appropriate key, typically the key F12.
24. What is Negative Infinity?
The negative infinity is a constant value that represents the lowest available value. This means that no number is less than this value. Negative Infinity is calculated by dividing a negative number by zero.
25. Which character is used to split JavaScript Code spanning into multiple lines?
The backslash, '' character, is used at the end of the first line if the JavaScript code is spread across multiple lines.
26. What are the undeclared and undefined variables in JavaScript?
Undeclared variables are variables that do not exist in the program and therefore are not declared. If a program attempts to determine the values of an undefined variable, it will fail because of a runtime error.
Undefined variables refer to ones declared by the program but not given a value. If the program attempts to find the values of an undefined variable the variable is returned with an undefined value.
27. Explain global variables in JavaScript.
A variable declared outside of a function definition is referred to as a global variable, and its scope is across your entire program. This implies that its value is accessible and adjustable throughout your program.
28. What does the prompt box mean in JavaScript?
It displays an interactive dialog box that displays an optional prompt for users to enter some text. It is typically used when users want to enter a number before entering a webpage. This returns either a string containing the user's input text or a null.
29. What is NULL in JavaScript?
The NULL value signifies no value or no object. It is also known as an empty value or empty object.
30. What is the "this" keyword in JavaScript?
"this" refers to an object running the current line of code. It is a reference to the object which executes the current function. If the function that is being referenced is a regular one, "this" references the global object. If the function is a method of the object, "this" refers to the object itself.
31. Define the purpose of timers in JavaScript.
Timers can be used to execute the code at an exact time or repeat the code within an interval. This can be accomplished by employing the methods setTimeout, setInterval, and clearInterval.
32. Which character is used to denote a comment?
The // character is for single-line comments, and the /* */ characters are used for multi-line comments.
33. Differentiate between ViewState and SessionState?
ViewState: It is specific to the page state within the browser in a session.
SessionState: It's user-specific containing the data of the user session and allows access to all data on the web pages.
34. What is the use of the === operator?
The === operator is a strict comparison operator, meaning it checks for both the value and the type of two variables.
35. Does JavaScript support automatic type conversion?
JavaScript supports automatic type conversion. This is the most common method of type conversion that JavaScript developers use.
36. Define Variable Typing in JavaScript.
Variable typing allows you to assign a numerical value to a variable. The same variable could be assigned to a string.
37. What is the main difference between "==" and "===" in JavaScript?
== tests only for value equality; however, "===" is a stricter equality test that returns false if the value or the type of two variables is different.
38. How to find the operating system in the client machine using JavaScript?
To detect the operating system, we can use a navigator.appVersion or navigator.userAgent property in JavaScript.
39. What's the purpose of the delete operator in JavaScript?
Delete operator is used to delete the property and its value.
40. List all Pop-up box types in JavaScript.
The pop-up boxes available in JavaScript are Alert, Confirm, and Prompt.
41. What is the use of Void(0)?
Void(0) stops pages from refreshing, and "zero" is used to pass the parameter while calling.
42. Differentiate between an alert box and a confirmation box.
An alert box shows only one button, an OK button. A confirmation box has two buttons: the OK and Cancel buttons.
43. Define escape characters.
In JavaScript, escape characters are used to represent special characters within a string. Escape characters start with a backslash followed by a character. The character that follows the backslash determines the special character being represented.
44. Explain JavaScript Cookies.
Cookies are small text files saved on the computer. They are created to store the required information when users browse the website. Examples include Users Name information and information about shopping carts from previous visits.
45. Explain the purpose of the pop() method.
This pop() method works like the shift() method. However, the difference is the shift method operates from the beginning of the array. The pop() method takes the final element off of the given array and returns it. The array upon which it is called is then altered.
46. What are break and continue statements?
A break statement is a way to exit the current loop. The continue statement continues with the next statement of the loop.
47. What's the purpose of the blur function in JavaScript?
The blur function removes the focus from the specified object.
48. How to create Generic objects in JavaScript?
Generic objects can be created by:

Wrapping up
With this list, we've tried to provide some of the most popular JavaScript interview questions that can help evaluate the best candidate and get through the interview process.
With this extensive list, we've tried to cover most of the fundamental, intermediate, and advanced Interview questions for JavaScript. If you'd like to skip this step and save hours of your hiring time, you can go with Turing, which lets you hire the top 1% of programmers remotely. If you're an experienced developer searching for a JavaScript job with top US companies, the Turing test is for you!
Hire Silicon Valley-caliber JavaScript developers at half the cost
Turing helps companies match with top quality remote JavaScript developers from across the world in a matter of days. Scale your engineering team with pre-vetted JavaScript developers at the push of a buttton.
Tired of interviewing candidates to find the best developers?
Hire top vetted developers within 4 days.
Leading enterprises, startups, and more have trusted Turing
Check out more interview questions
Hire remote developers
Tell us the skills you need and we'll find the best developer for you in days, not weeks.

















