Arrow functions are not suitable for methods that need their own this context, such as ________ functions.
- Event
- Callback
- Constructor
- Recursive
Arrow functions do not have their own this context, making them unsuitable for methods that need access to the object's this value. Constructor functions, which initialize objects and rely on this, should not be implemented using arrow functions.
How does destructuring work when the structure of the object does not match the destructuring pattern?
- It throws a syntax error
- It assigns undefined to the variables
- It ignores the mismatched values
- It automatically corrects the structure
Destructuring in JavaScript allows extracting values from objects or arrays, and when the structure doesn't match, it simply ignores the mismatched values, assigning undefined to the corresponding variables. This behavior is useful for extracting only the needed values and ignoring the rest.
__________ methods in ES6 classes are methods that are bound to the class itself, not to instances of the class.
- Static
- Instance
- Prototype
- Class
Static methods in ES6 classes are defined using the static keyword and are bound to the class itself rather than to instances of the class. These methods are associated with the class constructor and are called on the class, not on instances. Static methods are often used for utility functions that are related to the class but don't depend on specific instance data.
To re-export all named exports from a module, use export * from _________.
- export * from 'moduleName';
- export all from 'moduleName';
- export {all} from 'moduleName';
- export named from 'moduleName';
To re-export all named exports from a module in ES6, you use the export * from 'moduleName'; syntax. This allows you to export all the named exports from one module to another without listing them individually.
Q1: Imagine you are creating a caching mechanism for a web application. Would you choose a WeakMap or a Map for storing cached data and why?
- WeakMap
- Map
- Both WeakMap and Map
- Neither WeakMap nor Map
In a caching mechanism, using a WeakMap is preferred over a Map. This is because a WeakMap allows the keys to be garbage collected if there are no other references to them, which is beneficial for caching scenarios where you want the cached data to be automatically cleared when the corresponding objects are no longer in use. A Map, on the other hand, would retain the keys even if they are not needed anymore, leading to potential memory leaks in a caching context.
The Array method __________ is an example of a higher-order function that takes a function as its argument.
- Map
- Filter
- Reduce
- Concat
The reduce method in JavaScript arrays is a higher-order function that takes a callback function to accumulate the elements of an array into a single result. It is commonly used for tasks like summing or product accumulation.
When implementing a module that provides extension hooks, how can Symbols be used to create non-conflicting method names?
- Using generic function names
- Using Symbols as method names
- Using random strings as method names
- Using module-specific prefixes
The correct option is using Symbols as method names. Symbols allow you to create non-conflicting method names by using them as keys for object properties. This is particularly useful in the context of module extension hooks, where different modules can use Symbols without risking naming conflicts. Generic function names, random strings, and module-specific prefixes may lead to conflicts, making Symbols a more suitable choice for this scenario.
Object literals in ES6 can include __________, a shorthand for defining functions.
- Arrow Functions
- Prototypes
- Generators
- Callbacks
ES6 introduced arrow functions as a shorthand for defining functions within object literals, offering a more concise syntax and lexically scoped 'this'.
What happens when you use the return keyword in a single-line arrow function?
- The function returns undefined
- The function returns the value after the arrow
- The function throws an error
- The function returns an array
In arrow functions, if the body is a single expression, it is implicitly returned. So, using the return keyword is optional. Option B is correct.
__________ can be used to execute a callback on every element in the array, creating a new array with the results.
- map
- forEach
- reduce
- filter
The forEach method can be used to execute a callback function on each element of an array. However, it doesn't create a new array with the results.