How do you remove an item from a Map in ES6?
- delete method
- remove method
- pop method
- discard method
In ES6, you can use the delete method to remove an item from a Map. This method takes the key as an argument and removes the corresponding key-value pair from the Map.
How do prototype delegation and proto property in ES6 object literals work?
- They are unrelated concepts in ES6.
- Prototype delegation is achieved through the proto property.
- The proto property is used for inheritance in object literals.
- Prototype delegation is an obsolete feature in ES6.
In ES6 object literals, the proto property is used to establish prototype delegation and achieve inheritance. The proto property allows an object to inherit properties and methods from another object, forming a prototype chain. This mechanism facilitates code reuse and promotes a more modular and extensible design. It is important to note that the proto property is considered an internal implementation detail, and using Object.create() is the recommended approach for explicit prototype delegation.
What is a common challenge or limitation associated with tree shaking in JavaScript applications?
- It may lead to unintentional removal of code with side effects
- Tree shaking is only applicable to server-side code
- It can only eliminate unused variables, not functions
- Tree shaking is only effective in minified code
One challenge with tree shaking is the potential removal of code with side effects. If not handled carefully, it may result in unintended consequences, such as eliminating code that performs actions like setting up event listeners or initializing global variables.
Can methods in ES6 classes be anonymous?
- Yes, by using the anonymous keyword
- No, all methods must have names
- Yes, by omitting the method name
- No, only functions can be anonymous
Yes, methods in ES6 classes can be anonymous by omitting the method name. However, this is not a recommended practice as it makes code less readable. Naming methods helps in understanding the purpose and functionality of the methods within a class.
When the call stack is busy, new requests get queued in the __________ for their turn to be processed.
- Callback Queue
- Microtask Queue
- Event Loop
- Task Queue
The correct option is Task Queue. When the call stack is occupied, new tasks are placed in the task queue to await their turn. The Event Loop manages the process of moving tasks from the task queue to the call stack. Understanding this mechanism is crucial for handling asynchronous operations effectively.
To create a pipeline of operations, functions can be composed using higher-order functions, known as __________.
- Callbacks
- Promises
- Closures
- Combinators
In functional programming, functions like compose or pipe are used as combinators to create a pipeline of operations by composing other functions. These are higher-order functions that take functions as arguments and return a new function that represents the composition of those functions.
What is the primary advantage of using dynamic imports in JavaScript?
- Code Splitting
- Improved Code Readability
- Faster Execution
- Enhanced Browser Compatibility
Dynamic Imports in JavaScript allow for efficient code splitting. By loading only the modules that are needed at runtime, it improves the performance of the application, especially in large projects where not all code is required on every page.
What is the significance of weak references in WeakMap and WeakSet with regards to memory management?
- Weak references in WeakMap and WeakSet allow for automatic garbage collection, preventing memory leaks.
- Weak references are irrelevant in the context of WeakMap and WeakSet, as they don't impact memory management.
- Weak references provide a way to create circular references, enhancing memory efficiency.
- Weak references ensure that the referenced objects are not eligible for garbage collection, preserving memory.
Weak references in WeakMap and WeakSet enable automatic memory management by allowing the garbage collector to reclaim objects that are no longer reachable.
What is the initial state of a JavaScript Promise when it is created?
- Pending
- Resolved
- Rejected
- Settled
When a Promise is created, it starts in the "Pending" state. This means that the Promise is neither fulfilled nor rejected. It's essentially in a pending state until the asynchronous operation it represents is completed.
In an async function, what happens to unhandled exceptions?
- They are automatically caught by the global error handler
- They cause the program to crash immediately
- They propagate to the nearest catch block
- They result in an unhandled promise rejection
Unhandled exceptions in an async function result in unhandled promise rejections. This can lead to unexpected behavior or crashes if not properly addressed. It's crucial to handle errors appropriately in async functions to ensure robust and error-resistant code.