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.

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.

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.

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.

The HTTP status code ________ indicates that the request has succeeded.

  • 200 OK
  • 204 No Content
  • 404 Not Found
  • 500 Internal Server Error
The HTTP status code 200 OK indicates that the request has succeeded. It is the standard response for successful HTTP requests. The other options represent different HTTP status codes with different meanings, such as 'No Content,' 'Not Found,' and 'Internal Server Error.'

Considering browser compatibility, which array method would you avoid in Internet Explorer 8?

  • forEach()
  • map()
  • filter()
  • indexOf()
In terms of browser compatibility, the forEach() method should be avoided in Internet Explorer 8. This method was introduced in ECMAScript 5, and Internet Explorer 8 only supports ECMAScript 3. Other methods like map(), filter(), and indexOf() have more widespread support in older browsers.

A _______ function is a function that accepts up to three arguments: the value of the element, the index of the element, and the array object being traversed.

  • callback
  • handler
  • middleware
  • delegate
In JavaScript, a callback function is a function that can be passed as an argument to another function. Callback functions can accept up to three arguments: the value of the element, the index of the element, and the array object being traversed. They are commonly used in asynchronous programming and array methods.

In JavaScript, the Symbol data type can be used to create _________.

  • Objects
  • Functions
  • Unique identifiers
  • Private variables
In JavaScript, the Symbol data type can be used to create unique identifiers. Symbols are often used as object property keys when you need to ensure that the key is unique and not accidentally overwritten. They are not used to create objects, functions, or private variables.

What does the "this" keyword refer to in JavaScript?

  • The current function
  • The parent object
  • The global object
  • The previous function call
In JavaScript, the "this" keyword typically refers to the parent object, which is the object that calls the function. It allows you to access and manipulate the properties and methods of that object within the function. This behavior is crucial for object-oriented programming in JavaScript.

A ________ object represents a group of response headers, allowing you to query them and take different actions depending on the results.

  • a) XMLHttpRequest Object
  • b) FetchEvent Object
  • c) Headers Object
  • d) Worker Object
A Headers object represents a group of response headers. It allows you to query and manipulate these headers, which can be crucial when you need to inspect or modify headers in HTTP responses. You can use it for tasks like checking for specific headers or adding custom headers to a request.

Which method can be used to stop the event from propagating in the capturing or bubbling phase?

  • event.stopPropagation()
  • event.preventDefault()
  • event.stopPropagationPhase()
  • event.cancelPropagation()
The event.stopPropagation() method is used to stop the event from propagating further in the DOM tree. It prevents both capturing and bubbling phases, ensuring that the event doesn't trigger any other event listeners on the same element or its ancestors. This can be helpful in controlling event flow.

In JavaScript, the "this" keyword inside an arrow function is defined by its _________ context.

  • Global
  • Lexical
  • Local
  • Execution
In JavaScript, the "this" keyword inside an arrow function is defined by its lexical context. Unlike regular functions, arrow functions do not have their own "this" binding, so they inherit the "this" value from the surrounding code block, which is determined by the lexical scope.