__________ 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.
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.
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'.
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.
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 function to make API requests, how would you structure it to effectively handle both network errors and incorrect responses?
- Returning an error object for network errors and throwing an exception for incorrect responses
- Using separate callback functions for network errors and incorrect responses
- Combining network errors and incorrect responses into a single error object
- Utilizing a single callback function with different error codes for network and response issues
By returning an error object for network errors and throwing an exception for incorrect responses, the function can communicate distinct issues. This approach ensures a clear separation between network-related errors and issues with the API response, allowing for better identification and handling of specific problems. Separate callback functions or combining errors into a single object may lead to ambiguity in error handling.
In ES6, which scenario would necessitate using let over const?
- When the variable needs to be reassigned
- When the variable should remain constant throughout its scope
- When the variable is used in a loop
- When the variable is a function declaration
The 'let' keyword should be used when the variable needs to be reassigned within its scope, as 'const' variables cannot be reassigned after initialization. 'const' is appropriate for variables that should remain constant throughout their scope.
Can await be used inside a regular (non-async) function?
- No, it can only be used in async functions
- Yes, it can be used to make any function asynchronous
- Yes, but it will result in a runtime error
- No, it is only applicable in arrow functions
The await keyword can only be used inside functions marked with the async keyword. Attempting to use await in a regular function will result in a syntax error.
When using const with destructuring, you must provide a _________ at the time of declaration.
- Value
- Reference
- Type
- Default Value
When using const with destructuring, you must provide a value at the time of declaration. This is because, once a variable is declared with const, you cannot reassign it later.
When chaining promises, the return value of one .then() becomes the input for the next _________.
- catch()
- resolve()
- reject()
- then()
The correct term is then(). When chaining promises, the then() method is used to specify what should happen next after the Promise is fulfilled. The value returned by the then() callback becomes the input for the next then() in the chain.
Unlike callbacks, Promises support _______ chaining, which helps in writing cleaner code.
- callback
- asynchronous
- promise
- then
The correct option is 'then.' Promises support 'then' chaining, allowing you to chain multiple asynchronous operations in a more readable and maintainable way. This is a significant improvement over callbacks, leading to cleaner and more structured code.
How are mixins typically applied to a class in ES6?
- Using the extends keyword
- Using the include keyword
- Using the mixin keyword
- By manually copying and pasting the code
Mixins are typically applied to a class in ES6 using the extends keyword. This establishes a relationship between the class and the mixin, allowing the class to inherit the properties and methods defined in the mixin. This method of composition is clean and maintains a clear structure in the code.