1. What is JavaScript?
JavaScript is a high-level, interpreted programming language primarily used for adding interactivity to web pages. It is executed in web browsers and allows dynamic modification of content.
2. What are the key features of JavaScript?
Key features include dynamic typing, prototype-based object orientation, functions as first-class citizens, and support for event-driven programming.
3. How is JavaScript different from Java?
Despite the similar name, JavaScript and Java are different. JavaScript is a scripting language for web development, while Java is a general-purpose programming language.
4. What are the data types in JavaScript?
JavaScript has primitive data types such as number, string, boolean, null, undefined, and object types like object and function.
5. How do you declare variables in JavaScript?
Variables in JavaScript are declared using var, let, or const. For example, let x = 10;.
6. What is the difference between let, const, and var in JavaScript?
let and const were introduced in ECMAScript 6. let allows reassignment, while const is used for constant values. var is the older way of declaring variables with function scope.
7. How do you write comments in JavaScript?
Single-line comments are written with //, and multi-line comments are enclosed between /* and */.
8. What is hoisting in JavaScript?
Hoisting is a JavaScript behavior where variable and function declarations are moved to the top of their containing scope during the compilation phase.
9. Explain the concept of closures in JavaScript.
Closures occur when a function is defined inside another function, allowing the inner function to access the outer function’s variables even after the outer function has completed execution.
10. What is the purpose of this keyword in JavaScript?
The this keyword refers to the current execution context and is determined by how a function is called. It allows access to the object the function is a method of or the object that invoked the function.
11. What is the event loop in JavaScript?
The event loop is a fundamental concept in JavaScript’s concurrency model. It continuously checks the message queue for new tasks and executes them in a non-blocking manner.
12. Explain callback functions in JavaScript.
Callback functions are functions passed as arguments to other functions and are executed after the completion of an asynchronous operation. They are commonly used in event handling and AJAX requests.
13. What is the difference between == and === in JavaScript?
== is an equality operator that performs type coercion, while === is a strict equality operator that checks both value and type.
14. How do you handle asynchronous code in JavaScript?
Asynchronous code is handled using callbacks, Promises, or the modern async/await syntax. Promises provide a cleaner way to handle asynchronous operations.
15. What is the purpose of the setTimeout function in JavaScript?
The setTimeout function is used to delay the execution of a function or code block by a specified time interval, measured in milliseconds.
16. Explain the concept of promises in JavaScript.
Promises are objects representing the eventual completion or failure of an asynchronous operation. They simplify asynchronous code and make it more readable.
17. How does the async/await syntax work in JavaScript?
async/await is a syntax for handling asynchronous code in a more synchronous-like manner. async is used to define an asynchronous function, and await is used to pause the execution until the promise is resolved.
18. What is the purpose of the forEach method in JavaScript arrays?
The forEach method is used to iterate over elements in an array. It executes a provided function once for each array element.
19. How do you check if a variable is an array in JavaScript?
The Array.isArray() method is used to check if a variable is an array. It returns true if the variable is an array, otherwise false.
20. What is the difference between null and undefined in JavaScript?
null represents the intentional absence of any object value, while undefined indicates a variable has been declared but not assigned a value.
21. Explain the concept of the Document Object Model (DOM) in JavaScript.
The DOM is a programming interface for web documents. In JavaScript, it represents the hierarchical structure of HTML or XML documents as objects, enabling dynamic manipulation of content.
22. How can you create and append elements to the DOM using JavaScript?
Elements can be created using document.createElement() and appended to the DOM using methods like appendChild() or insertBefore().
23. What is the purpose of the localStorage and sessionStorage objects in JavaScript?
localStorage and sessionStorage are Web Storage APIs used to store key-value pairs in a web browser. localStorage persists data across sessions, while sessionStorage stores data for the duration of a page session.
24. What are arrow functions in JavaScript?
Arrow functions are a concise syntax for writing function expressions. They do not have their own this and inherit it from the parent scope.
25. How does JavaScript handle hoisting for function declarations and expressions?
Function declarations are hoisted to the top of their scope and can be called before they are declared. Function expressions, however, are not hoisted.
26. Explain the difference between the for…in and for…of loops in JavaScript.
for…in is used to iterate over the enumerable properties of an object, while for…of is used to iterate over the values of iterable objects like arrays and strings.
27. What is the purpose of the map method in JavaScript arrays?
The map method creates a new array by applying a provided function to each element of the original array.
28. How do you handle errors in JavaScript?
Errors in JavaScript can be handled using try…catch blocks. Additionally, the finally block can be used to execute code regardless of whether an error occurred.
29. What is the typeof operator used for in JavaScript?
The typeof operator is used to determine the type of a variable or expression. It returns a string representing the data type.
30. How can you prevent the default behavior of an event in JavaScript?
The preventDefault() method is used to prevent the default behavior associated with an event, such as form submission or link navigation.
31. What is the purpose of the bind method in JavaScript?
The bind method is used to create a new function with a specified this value and partially applied arguments. It is often used to bind a function to a specific context.
32. How do you perform deep cloning of objects in JavaScript?
Deep cloning of objects can be achieved using methods like JSON.parse(JSON.stringify(obj)) or libraries like Lodash.
33. What is the purpose of the Object.keys() method in JavaScript?
The Object.keys() method returns an array of a given object’s own enumerable property names, allowing you to iterate over the object’s keys.
34. How does JavaScript handle inheritance?
JavaScript uses prototype-based inheritance. Objects can inherit properties and methods from other objects through their prototypes.
35. What are template literals in JavaScript?
Template literals are string literals allowing embedded expressions. They are enclosed by backticks ( ) and support multiline strings and variable interpolation.
36. What is the purpose of the indexOf and lastIndexOf methods in JavaScript strings?
indexOf returns the index of the first occurrence of a specified value in a string, and lastIndexOf returns the index of the last occurrence.
37. How can you convert a string to an integer in JavaScript?
The parseInt() function or the unary plus operator (+) can be used to convert a string to an integer.
38. Explain the concept of the Same-Origin Policy in JavaScript.
The Same-Origin Policy restricts web pages from making requests to a different domain than the one that served the web page. It is a security measure to prevent cross-site request forgery.
39. What is the purpose of the fetch API in JavaScript?
The fetch API is used to make network requests and is more modern than the older XMLHttpRequest. It returns a Promise and provides a simpler way to work with asynchronous data.
40. What is the difference between localStorage and cookies in JavaScript?
Both localStorage and cookies store data on the client side, but cookies are sent with each HTTP request, while localStorage is not. Cookies have size limitations, and data in localStorage is available only to the same origin.
41. What is a closure in JavaScript, and how is it useful?
A closure is the combination of a function and the lexical environment within which that function was declared. Closures allow functions to retain access to variables from their outer scope even after the outer function has finished execution.
42. How can you dynamically load external JavaScript files?
External JavaScript files can be dynamically loaded using the document.createElement(‘script’) method and appending the new script element to the DOM.
43. What is the purpose of the splice method in JavaScript arrays?
The splice method is used to add or remove elements from an array. It modifies the original array in place and returns an array of removed elements.
44. What is the purpose of the reduce method in JavaScript arrays?
The reduce method is used to accumulate values of an array into a single result. It takes a callback function and an initial value.
45. How do you compare two objects for equality in JavaScript?
Comparing two objects for equality can be done using libraries like Lodash, which provide functions like isEqual, or by manually comparing their properties.
46. How can you create and manipulate cookies in JavaScript?
Cookies can be created and manipulated in JavaScript using the document.cookie property. Reading and writing values, setting expiration dates, and modifying cookie attributes are common operations.
47. What is the purpose of the classList property in JavaScript?
The classList property provides an interface to interact with the class attributes of an HTML element. It allows adding, removing, or toggling classes.
48. How can you detect the browser using JavaScript?
Browser detection can be done using the navigator object. However, feature detection is preferred over browser detection for better compatibility.
49. What is the async attribute in JavaScript when loading external scripts?
The async attribute is used when loading external scripts to make the script execute asynchronously, without blocking the parsing of the HTML document.
50. How can you handle exceptions in JavaScript promises?
Exceptions in JavaScript promises can be handled using the catch method, which is part of the promise API. It is similar to using try…catch with synchronous code.