How do you embed expressions within a template literal?

  • Place the expression inside ${}
  • Use single quotes around the expression
  • Enclose the expression in square brackets
  • Use the at symbol (@)
Expressions are embedded within a template literal using ${}. This syntax allows you to insert dynamic content directly into the string, providing a concise and readable way to include variables or expressions in your strings.

To process each element in an array and build a new array with elements that pass certain criteria, use _________.

  • map
  • forEach
  • reduce
  • filter
The filter method is used to create a new array with elements that pass a certain condition specified in a callback function.

You're designing a caching mechanism for user sessions where each user ID maps to session data. Which ES6 data structure would be most suitable?

  • Map
  • Set
  • WeakMap
  • WeakSet
In this scenario, a Map would be most suitable. A Map in ES6 allows you to associate keys (user IDs) with values (session data), making it an ideal choice for a caching mechanism where you need to map user IDs to their respective session data.

Can tree shaking be used in both ES6 and CommonJS module systems?

  • Yes, only in ES6 modules
  • Yes, only in CommonJS modules
  • Yes, in both ES6 and CommonJS modules
  • No, it is exclusive to AMD modules
Tree shaking is a feature mainly associated with ES6 (ES2015) modules. It works efficiently with the static nature of ES6 imports, allowing the bundler to analyze and remove unused code. CommonJS modules, being dynamic, may not fully support tree shaking. Hence, while it's effective in ES6, its application in CommonJS modules might be limited.

In a recursive function, the _________ parameter can be used to accumulate results across calls.

  • Accumulator
  • Recursive
  • Accumulation
  • Result
In-depth content in the explanation. The accumulator parameter in a recursive function is used to accumulate and store results across multiple recursive calls. It helps maintain a running total or aggregate information during the recursion process.

In destructuring assignment, _________ can be used to gather the rest of the elements/properties into a new array or object.

  • Spread operator
  • Rest operator
  • Concatenation operator
  • Merge operator
In destructuring assignment, the correct option is the "Rest operator." The rest operator allows you to gather the remaining elements or properties into a new array or object, making it a powerful tool for working with structured data. It is denoted by three dots (...).

Q2: If you are managing a group of user objects, each with associated metadata, how would using a WeakMap affect memory management compared to using a Map?

  • WeakMap
  • Map
  • Both WeakMap and Map
  • Neither WeakMap nor Map
Using a WeakMap for managing user objects with associated metadata is advantageous for memory management. In a WeakMap, keys are weakly referenced, meaning that if there are no other references to a key, it can be garbage collected. This is useful when managing user objects because if a user object is removed elsewhere in the application, the associated metadata can also be automatically cleared from the WeakMap, preventing unnecessary memory consumption. A Map, on the other hand, would retain the user objects in memory even if they are no longer needed, potentially leading to memory issues.

In a logging function, how can default parameters be used to control the verbosity of the logs?

  • Set a default verbosity level, and users can adjust it by providing an optional parameter, like log(message, verbosity = 1).
  • Use default parameters to enable users to specify different levels of verbosity, such as log(message, level = "info").
  • Allow users to pass a verbosity parameter and use default parameters to handle cases where no verbosity level is provided.
  • Implement default parameters for both message and verbosity, allowing users to adjust verbosity while still logging a default message.
Default parameters can be employed in a logging function to control the verbosity of the logs. By setting a default verbosity level, users can choose to override it when calling the function, providing flexibility in controlling the amount of detail in the logs. It simplifies the logging function's usage while still offering customization based on the user's needs.

In a scenario where you are extending a base class, how would overriding and extending methods impact the functionality of your derived class?

  • Overriding can modify the behavior of a method in the derived class, while extending adds new functionality.
  • Overriding and extending have the same impact on the derived class.
  • Overriding and extending methods are not possible in ES6.
  • Overriding and extending methods will lead to a compilation error.
When extending a base class in ES6, you can override existing methods in the derived class to modify their behavior. Overriding allows you to customize the functionality of inherited methods. Additionally, you can extend the base class by adding new methods in the derived class, providing additional functionality without modifying the base class. This flexibility enhances code reuse and adaptability.

What is the significance of the done property in the object returned by the next() method of a generator?

  • It indicates if the generator is done executing
  • It represents the final result of the generator
  • It is always set to false
  • It is used for error handling
The done property in the object returned by the next() method of a generator indicates whether the generator has completed its execution. When done is true, it means the generator has finished, and no more values will be generated. This is crucial for controlling the flow of iteration and termination of the generator.

Can template literals be used for multi-line string formatting?

  • Yes
  • No
  • Only with the use of the escape character
  • Depends on the browser support
Template literals in JavaScript can be used for multi-line string formatting by directly including line breaks within the backticks. This makes it easier to create and maintain multiline strings without the need for explicit concatenation or escape characters.

Indexes in DB2 improve ________.

  • Backup and recovery
  • Data integrity
  • Query performance
  • Storage efficiency
Indexes in DB2 improve query performance. They serve as a data structure that helps in quickly locating and accessing specific rows within a table based on the indexed columns. By creating indexes on columns frequently used in search criteria or join conditions, DB2 can efficiently retrieve data, leading to faster query execution times and overall improved system performance.