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.

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.

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.

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.

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.

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.

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.

How do generator functions differ from traditional functions in terms of execution?

  • Generator functions have multiple entry points
  • Generator functions always return a value
  • Generator functions are synchronous
  • Generator functions have the ability to pause and resume execution
Generator functions differ from traditional functions by having the ability to pause and resume their execution using the yield keyword. This feature enables the creation of iterators and asynchronous programming patterns. Traditional functions, on the other hand, run to completion without the ability to pause.

How do Symbols contribute to better property encapsulation in objects?

  • Symbols allow for private properties
  • Symbols allow for dynamic property names
  • Symbols enforce strict encapsulation
  • Symbols are interchangeable with property names
Symbols in JavaScript can be used as unique keys for object properties. This allows for the creation of private properties and better encapsulation, as Symbols are not enumerable in for...in loops and do not clash with other property names.

In a recursive function, how can default parameters be used to track state across recursive calls?

  • Utilize default parameter values to maintain state
  • Use default parameters only for base cases
  • Default parameters are not suitable for recursive functions
  • Recursive functions cannot use default parameters
In a recursive function, default parameters can be leveraged to maintain state across different recursive calls. This allows you to pass and update values without explicitly passing them in each recursive call. For example, consider a factorial function where the default parameter keeps track of the current product.

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.

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.