When creating a module that provides a primary functionality along with several auxiliary functions, how should you organize the exports?

  • export default PrimaryFunction; export { auxFunc1, auxFunc2 };
  • export { PrimaryFunction, auxFunc1, auxFunc2 }
  • export PrimaryFunction; export auxFunc1; export auxFunc2;
  • export PrimaryFunction, auxFunc1, auxFunc2;
Organizing exports with a named export for the primary functionality and auxiliary functions ensures clarity and flexibility when importing in other modules.

In a class hierarchy, if a method is overridden, how can you call the method from the parent class?

  • Using this.method()
  • super.method()
  • parent.method()
  • class.method()
The 'super' keyword is used to call the overridden method from the parent class. It ensures that the overridden method in the subclass is bypassed, and the method from the parent class is invoked.

How do mixins in ES6 help in achieving multiple inheritance?

  • Through Object Assignment
  • Using Class Hierarchy
  • Prototypal Inheritance
  • Closures
Mixins in ES6 are achieved by applying the properties and methods of one object to another using object assignment. This allows a single object to inherit functionalities from multiple sources, providing a form of multiple inheritance. Mixins enhance code reuse and flexibility by allowing the composition of behavior from different objects.

When overriding a method in a subclass, use super.methodName() to call the original method from the _______ class.

  • child
  • parent
  • subclass
  • overridden
When overriding a method in a subclass, use super.methodName() to call the original method from the parent class. This allows the subclass to extend or modify the behavior of the parent method while still utilizing its functionality.

How can you access both the index and value of an array element in a for...of loop?

  • for (let [index, value] of array.entries())
  • for (let {index, value} of array.entries())
  • for (let (index, value) of array.entries())
  • for (let index, value of array.entries())
In a for...of loop, you can use the entries() method on the array to access both the index and value. The returned value is an array where the first element is the index and the second element is the value. This destructuring assignment allows easy access to both index and value.

When you extend a class in ES6, what must you do before using this in the constructor?

  • Initialize the subclass properties
  • Call the super() method
  • Import the parent class
  • Define a new constructor
In ES6, when extending a class, you must call super() in the constructor of the subclass before using this. The super() call initializes the properties of the parent class.

To prevent modifications to an object’s prototype, the _________ method can be used to seal the prototype.

  • Freeze
  • Seal
  • PreventExtensions
  • Protect
The seal method in JavaScript can be used to prevent any further addition or deletion of properties on an object, including its prototype. This ensures that the prototype remains fixed and cannot be modified.

How do you access a static property within a class method?

  • Using this.propertyName
  • Using self.propertyName
  • Using the class name followed by a dot and the property name
  • Using super.propertyName
To access a static property within a class method, you use the class name followed by a dot and the property name. This is because static properties are associated with the class itself, not with instances, so you reference them through the class name.

To iterate over an array's elements using a for...of loop, write for (const element _______ array).

  • in
  • of
  • from
  • within
In JavaScript, the correct syntax for iterating over an array using a for...of loop is for (const element of array). The of keyword is used to loop over the values in an iterable object like an array.

Can async functions be used as constructors for new objects?

  • Yes
  • No
  • Only in specific JavaScript engines
  • Only with the use of decorators
No, async functions cannot be used as constructors for new objects. Async functions always return a Promise, and using them with the new keyword will result in a TypeError. Constructors should return objects, not Promises.