In ES6, can a class extend more than one class at a time?

  • Yes
  • No
  • Only if the classes have a common ancestor
  • Only in certain scenarios
In ES6, a class can extend only one other class at a time. Unlike some other programming languages that support multiple inheritance, JavaScript (ES6) does not allow a class to directly extend more than one class. This design choice helps avoid complications related to ambiguity and conflicts that may arise with multiple inheritance.

In a web application, how would you efficiently load multiple resources in parallel using async/await?

  • Load resources using Promise.all
  • Use Promise.race for parallel loading
  • Sequentially load each resource using await
  • Utilize a combination of Promise.all and async/await
In an asynchronous context, Promise.all is used to efficiently load multiple resources in parallel. It allows for concurrent execution of promises and is commonly used with async/await to enhance code readability and maintainability.

When designing a library for UI components, how would the use of ES6 classes and inheritance improve the code structure and reusability?

  • Prototype Chain
  • Object Literal Notation
  • Composition over Inheritance
  • Extending Base Components
By using ES6 classes and inheritance, you can create a hierarchy of UI components, making it easier to manage shared functionality and customize specific components. Options A and B are not directly related to ES6 classes, and Option C emphasizes composition as a preferred pattern.

In what scenario would a callback be more appropriate than a Promise?

  • When dealing with simple and sequential asynchronous tasks.
  • Callbacks are never more appropriate than Promises.
  • In complex situations where multiple asynchronous tasks depend on each other.
  • Promises are always preferred over callbacks.
Callbacks are suitable for straightforward, sequential tasks where the asynchronous nature is not overly complex. Promises shine in scenarios involving more complex asynchronous workflows, providing better control and readability. Understanding the use cases for callbacks versus Promises is essential for choosing the right approach in different asynchronous programming scenarios.

In ES6, a function parameter's default value can be another function's _________.

  • name
  • return value
  • parameters
  • scope
In ES6, a function parameter's default value can be another function's return value. This allows for dynamic default values based on the execution of the provided function.

When using a for...of loop, what keyword is used to access the current item in the collection?

  • for
  • in
  • of
  • each
The for...of loop uses the "of" keyword to iterate over the values of an iterable object, providing a cleaner syntax compared to the for...in loop.

Using rest parameters alongside default parameters can result in more concise and flexible function definitions.

  • Spread Operators
  • Arrow Functions
  • Template Literals
  • Destructuring Assignment
In JavaScript, rest parameters (...) allow a function to accept an indefinite number of arguments as an array. Combining rest parameters with default parameters enables the creation of more versatile and compact functions. The spread operator, which is the correct option, is used to collect function arguments as an array.

What are the first and second arguments of a tag function in a tagged template literal?

  • The template string and an array containing the evaluated expressions.
  • The evaluated expressions and the template string.
  • The tag function itself and the template string.
  • The template string and the number of expressions.
In a tagged template literal, the tag function is called with the template string as the first argument and an array containing the evaluated expressions as the second argument. This enables customized processing of the template and its expressions.

Is it possible to rename variables while destructuring an object or array?

  • Yes, by using the as keyword
  • No, renaming is not supported in destructuring
  • Yes, by using the rename keyword
  • Yes, by providing an alias after a colon
Yes, it is possible to rename variables during destructuring in JavaScript. The as keyword is used to provide an alias for the variable, allowing you to use a different name than the original property or array element.

What is a potential downside of using higher-order functions excessively in JavaScript?

  • Increased complexity and potential for code readability issues
  • Improved code maintainability and easier debugging
  • Enhanced performance due to optimized function calls
  • Reduced flexibility in handling different use cases
Excessive use of higher-order functions can lead to increased code complexity and potential readability issues, as functions become deeply nested and harder to follow.