The comparison operator _______ checks for inequality, considering type coercion.
- ==
- ===
- !=
- !==
The comparison operator '!==' checks for inequality while also considering type coercion. It returns true if the values are not equal or if their types are not the same. For example, 5 !== "5" would evaluate to true because the number 5 is not equal to the string "5."
How does JavaScript implement inheritance internally?
- Through classes and interfaces
- Using a prototype chain and object delegation
- By creating abstract base classes
- Through function overloading
JavaScript implements inheritance through a prototype chain and object delegation. Each object has a prototype object, and if a property or method is not found on the object itself, it's looked up on the prototype chain. This mechanism allows objects to inherit properties and methods from their prototypes, facilitating code reuse and object-oriented programming in JavaScript. Classes and interfaces are not directly related to inheritance in JavaScript.
Which early browser first implemented JavaScript?
- Internet Explorer
- Mosaic
- Netscape Navigator
- Opera
JavaScript was first implemented in Netscape Navigator. Brendan Eich developed it in 1995 while working at Netscape Communications. This move by Netscape added a significant interactive element to the web and contributed to the rapid adoption of JavaScript.
How does the for...of loop handle string iteration?
- It iterates over each character in the string.
- It treats the string as an iterable object.
- It only works on single-character strings.
- It throws an error when used with strings.
The for...of loop handles string iteration by iterating over each character in the string. It treats the string as an iterable object where each character is an element, allowing you to loop through and process individual characters in a string efficiently.
What is the purpose of the default case in a switch statement?
- It defines a fallback case
- It specifies the first case
- It is used for loop control
- It marks the end of the switch
The default case in a switch statement serves as a fallback option. If none of the other cases match the expression's value, the code in the default case block is executed. This ensures that there is always a valid path in the switch.
Consider a function that fetches user information from an API. If the API call fails, you want to log an error message and then continue the execution of the function without throwing an exception to the outer scope. Which Promise method should you use to achieve this?
- Promise.catch()
- Promise.finally()
- Promise.reject()
- Promise.resolve()
You should use Promise.catch() to handle errors in a Promise. This method allows you to specify a callback function that will be called when the Promise is rejected, allowing you to log an error message and gracefully continue execution without propagating the error to the outer scope.
You need to filter out the prototype properties while using a loop to iterate over object properties. Which loop would you use, and what additional method would be needed to avoid iterating over prototype properties?
- for...in loop with hasOwnProperty()
- for...of loop with Object.keys()
- while loop with Object.getOwnPropertyNames()
- forEach() method with Object.getOwnPropertyNames()
You would use a for...of loop with Object.keys() to iterate over object properties while excluding prototype properties. Object.keys() returns an array of an object's own enumerable property names, ensuring that prototype properties are filtered out.
Why does 0.1 + 0.2 !== 0.3 in JavaScript?
- JavaScript has floating-point precision limitations
- 0.1 and 0.2 are not stored precisely in binary
- It's a bug in JavaScript
- JavaScript uses a different numeric system
In JavaScript, numbers are represented in binary, and not all decimal fractions can be precisely represented in binary. Due to this limitation, when you perform operations like addition with decimal numbers, you might encounter tiny rounding errors that make 0.1 + 0.2 !== 0.3. This behavior is not unique to JavaScript and occurs in many programming languages with floating-point arithmetic.
What is a prototype in JavaScript?
- A template object used for inheritance
- A built-in JavaScript function for mathematical operations
- An array of data
- A type of loop construct
In JavaScript, a prototype is a template object that is used for inheritance. Each object in JavaScript has a prototype, and it allows objects to inherit properties and methods from other objects, creating a hierarchy of objects. Prototypal inheritance is a fundamental concept in JavaScript's object model.
What is the primary purpose of using AJAX in web development?
- To make synchronous requests to the server
- To create web animations
- To make asynchronous requests to the server
- To validate HTML forms
The primary purpose of using AJAX in web development is to make asynchronous requests to the server without requiring a full page refresh. This allows for dynamic content loading and improved user experience in web applications.