In which context does the "this" keyword not refer to the object that calls the function?

  • Global context
  • Method context
  • Function context
  • Constructor context
The "this" keyword in JavaScript does not refer to the object that calls the function in the global context. In the global context, "this" points to the global object, which is usually the "window" object in browsers. This can be a source of confusion, so it's essential to understand the various contexts in which "this" behaves differently.

What is a closure in JavaScript?

  • A secure way to store passwords
  • A private function
  • A way to handle exceptions
  • A function that remembers its lexical scope
A closure in JavaScript is a function that "remembers" its lexical scope, even when it's executed outside that scope. This allows the function to maintain access to variables from its parent scope, creating a powerful mechanism for encapsulation and data privacy.

Which array method adds elements to the beginning of an array?

  • push()
  • unshift()
  • concat()
  • splice()
The unshift() method is used to add elements to the beginning of an array. It's particularly useful when you want to insert one or more elements at the start of an existing array without affecting the order of the existing elements. Unlike push(), which adds elements to the end, unshift() works at the beginning.

Who is credited as the main developer behind JavaScript's creation?

  • Brendan Eich
  • Douglas Crockford
  • Linus Torvalds
  • Tim Berners-Lee
Brendan Eich is credited as the main developer behind JavaScript's creation. He created JavaScript while working at Netscape Communications in 1995. His contributions to the language's design and development have had a lasting impact on web development.

What is the common problem addressed by using asynchronous code in JavaScript?

  • Blocking the main thread
  • Memory Leaks
  • Code Complexity
  • Code Optimization
The common problem addressed by using asynchronous code in JavaScript is the avoidance of blocking the main thread. Blocking the main thread can lead to unresponsive user interfaces, making the application seem slow or frozen. Asynchronous code helps prevent this issue by allowing non-blocking execution of tasks.

You are developing an e-commerce website and want to fetch product details asynchronously to avoid page reloads. Which method might be appropriate for managing successive data retrieval operations in a clean and maintainable manner?

  • Promises
  • Callbacks
  • Async/Await
  • Observables
To manage successive data retrieval operations in a clean and maintainable manner, you can use the "Async/Await" approach in JavaScript. Async/Await simplifies asynchronous code and makes it look more like synchronous code, which can significantly enhance code readability and maintainability. It allows you to write asynchronous code in a more sequential style, making it easier to handle multiple asynchronous operations.

Which API allows you to make non-simple requests to another domain in JavaScript, considering the Same-Origin Policy?

  • XMLHttpRequest
  • JSONP (JSON with Padding)
  • CORS (Cross-Origin Resource Sharing)
  • WebSocket
CORS (Cross-Origin Resource Sharing) is the API that allows you to make non-simple requests (such as those with custom headers or methods) to another domain in JavaScript while considering the Same-Origin Policy. XMLHttpRequest is an older alternative but has limitations compared to CORS. JSONP is a workaround technique, not an API, and WebSocket is used for full-duplex communication, not for cross-origin requests.

The concept of creating a single function or method that can operate on multiple types of objects is known as _________.

  • Overloading
  • Inheritance
  • Polymorphism
  • Abstraction
The concept of creating a single function or method that can operate on multiple types of objects is known as "Polymorphism." In JavaScript, polymorphism can be achieved through method overriding and dynamic method binding, enabling different objects to respond to the same method in a way that suits their specific type.

How can you implement a while loop without causing a browser to freeze in case of a long-running process?

  • Use asynchronous code and setTimeout to break the loop into smaller chunks, allowing the browser to handle other tasks.
  • Wrap the loop in a Web Worker to offload it to a separate thread.
  • Increase the browser's JavaScript execution stack size to handle long-running loops.
  • Use a while loop with a higher timeout value to prevent freezing.
To prevent the browser from freezing during a long-running while loop, you should use asynchronous code and setTimeout to break the loop into smaller chunks. This allows the browser to handle other tasks and prevents the UI from becoming unresponsive. This approach follows the principles of non-blocking and responsive UI in web development.

The _______ method returns a Promise that resolves or rejects as soon as one of the promises in an iterable resolves or rejects, with the value or reason from that promise.

  • Promise.race()
  • Promise.all()
  • Promise.any()
  • Promise()
The correct answer is Promise.race(). This method takes an iterable of promises and returns a new promise that settles as soon as one of the input promises resolves or rejects. It's useful when you want to perform an action as soon as any of several asynchronous tasks completes.