When building a new object that combines properties from several sources, how can the spread operator be used effectively?

  • Merge properties using the { ...source1, ...source2 } syntax
  • Combine properties using the Object.assign() method
  • Concatenate properties using the + operator
  • Extend properties using the extends keyword
The spread operator (...) is commonly used to merge properties from multiple sources into a new object. Using { ...source1, ...source2 } allows you to create a new object with properties from both sources effectively.

What character is used to define a template literal in JavaScript?

  • Backtick (`)
  • Dollar sign ($)
  • Hash (#)
  • Exclamation mark (!)
In JavaScript, a template literal is defined using the backtick (`) character. It allows for easy string interpolation and multiline strings, making it a powerful feature for string formatting.

What is the return value when accessing a Map object's element with a non-existing key?

  • undefined
  • nan
  • KeyError
  • FALSE
When accessing a non-existing key in a Map, the result is undefined. This behavior is different from objects, where accessing a non-existing property returns undefined.

If you need to access both the index and value in an array using for...of, use __________ to convert the array into an iterable of index-value pairs.

  • Object.entries()
  • Array.entries()
  • indexValuePairs()
  • iterable()
If you need to access both the index and value in an array using for...of, use Array.entries() to convert the array into an iterable of index-value pairs. This allows you to destructure the pairs in the for...of loop, providing both index and value in each iteration.

JavaScript’s __________ nature allows it to perform non-blocking operations despite being single-threaded.

  • Synchronous
  • Asynchronous
  • Parallel
  • Multithreaded
The correct option is Asynchronous. JavaScript's asynchronous nature is a key feature that enables it to handle multiple tasks concurrently without blocking the main thread. This is achieved through mechanisms like callbacks, Promises, and async/await, making it suitable for building responsive and efficient applications.

A pure function always returns the same output given the same _________.

  • Input
  • Output
  • Variable
  • Function
A pure function is a function where the output is solely determined by its input, making it predictable and easier to test. It always returns the same output for the same input.

How does the event loop handle callback functions in JavaScript?

  • It executes callbacks immediately when encountered
  • It adds callbacks to the call stack for execution
  • It delegates callbacks to the message queue for later execution
  • It ignores callbacks entirely
The event loop in JavaScript works by constantly checking the call stack and message queue. When the call stack is empty, it picks up tasks from the message queue, including callback functions, and adds them to the call stack for execution. This ensures asynchronous operations are handled in a non-blocking way.

In ES6, how can you define a method inside an object literal?

  • Function shorthand notation
  • Method shorthand notation
  • Prototype method notation
  • Arrow function notation
In ES6 object literals, you can define a method using the method shorthand notation. This provides a concise way to declare functions as properties of an object.

Which method would you choose to execute a side effect for each array element without modifying the array?

  • forEach
  • map
  • filter
  • reduce
The forEach method is designed for executing a provided function once for each array element without modifying the array itself. It is commonly used when you need to perform side effects, such as logging or updating external variables, for each element.

Can the super keyword be used in a class that does not extend another class?

  • Yes
  • No
  • Only in static methods
  • Only in arrow functions
No, the super keyword is used to call corresponding methods of the superclass in a subclass. If a class doesn't extend another class, there is no superclass, and using super is not valid.