Consider a library with multiple utility functions; how would you structure the exports to optimize for tree shaking?

  • export function util1() {} export function util2() {}
  • export { util1, util2 }
  • export default { util1, util2 }
  • export const util1 = () => {}; export const util2 = () => {};
To optimize for tree shaking, individually exporting functions (export function util1() {}) allows dead code elimination, ensuring only the used functions are included in the final bundle.

In functional composition, the output of function ______ becomes the input of function ______.

  • Output, Input, Result, Transformation
  • Transformation, Input, Output, Composition
  • Result, Transformation, Input, Output
  • Composition, Result, Output, Input
In functional composition, the output of one function serves as the input for the next one. This is a key concept in functional programming, where functions are chained together to perform a series of transformations on data.

When iterating over a Map object with a for...of loop, each iteration returns an array where the first element is the _______ and the second is the value.

  • key
  • index
  • property
  • length
In a Map object, the first element of the array returned during iteration represents the key, and the second element represents the corresponding value.

The concept of ________ is essential in understanding how functions are combined in functional composition.

  • Closure
  • Immutability
  • Prototypes
  • Referential transparency
The concept of referential transparency is essential in understanding how functions are combined in functional composition. Referential transparency means that a function, given the same inputs, will always return the same output, allowing for easier reasoning about the behavior of composed functions.

In ES6, how does the shorthand for method properties affect the 'function' keyword in object literals?

  • It removes the need for the 'function' keyword.
  • It enforces the use of the 'function' keyword.
  • It modifies the behavior of the 'function' keyword.
  • It's not related to the 'function' keyword.
In ES6, the shorthand for method properties allows omitting the 'function' keyword when defining methods in object literals. It enhances code readability by providing a more concise syntax for method definitions within objects. This syntactic sugar simplifies the declaration of methods in objects, making the code cleaner and more modern.

How does the static structure of ES6 Modules aid in tree shaking compared to CommonJS?

  • Easier debugging due to explicit dependencies
  • Improved dead code elimination
  • Faster runtime performance
  • Better support for dynamic imports
ES6 Modules have a static structure, allowing tools to analyze dependencies at build time. Tree shaking is the process of eliminating dead code, and ES6 Modules excel in this regard, making it easier to eliminate unused code during bundling.

To execute multiple async functions in parallel and wait for all of them, use __________.

  • Promise.all()
  • Promise.race()
  • Promise.parallel()
  • Promise.sequence()
To execute multiple asynchronous functions concurrently and wait for all of them to complete, the appropriate method is Promise.all(). It takes an array of promises and resolves when all the promises in the array have resolved. Promise.race() would resolve as soon as any of the promises in the array resolves, which might not be suitable for waiting for all of them. Understanding the correct usage of Promise.all() is crucial for efficient handling of parallel asynchronous tasks.

The super keyword in static methods refers to the _______ class's static methods and properties.

  • Parent
  • Child
  • Sibling
  • Derived
In a static method, super refers to the parent class's static context. This is useful for accessing static methods or properties of the parent class.

If a default parameter references another parameter, what order must they be declared in?

  • After the parameter it references
  • Before the parameter it references
  • It doesn't matter
  • They must be declared in a separate function
In JavaScript, default parameters are evaluated at the time of the function call. Explanation should cover the order of declaration and how the referencing works.

The spread operator can be used in ES6 to clone an array without ________ the original array.

  • Modifying
  • Changing
  • Altering
  • Mutating
The spread operator can be used to clone an array without mutating the original array. It creates a shallow copy, meaning nested objects are still references, but the outer array is a new instance.

To use destructuring in a for...of loop iterating over a Map, you would write for (const [key, ______] of map).

  • item
  • val
  • value
  • element
To use destructuring in a for...of loop iterating over a Map, you would write for (const [key, value] of map). The value here is the second element of the destructuring assignment, representing the value associated with the current key in the Map.

Using await inside a __________ loop can cause asynchronous operations to run sequentially.

  • for
  • while
  • do-while
  • foreach
When using await inside a loop, such as a while loop, it may lead to unexpected behavior. This is because the loop will not pause for each asynchronous operation to complete before moving to the next iteration, potentially causing them to run sequentially. It's crucial to understand the implications of using await inside loops and consider alternative approaches for parallel execution of asynchronous operations.