How do events propagate in the DOM tree? Describe the differences between event bubbling and event capturing, and when you might use stopPropagation().
How does JavaScript's prototype-based inheritance work? Explain the prototype chain and how methods and properties are inherited in JavaScript.
What is a higher-order function? Provide examples of some built-in higher-order functions in JavaScript.
Explain the JavaScript event loop. Why is it important, and how does it handle asynchronous operations?
What is memoization, and how can it be implemented in JavaScript to optimize performance for expensive function calls?