Question: What's the difference between `event.stopPropagation()` and `event.stopImmediatePropagation()`?

Answer: 
`event.stopPropagation` will prevent handlers on parent elements from running.  

Calling `event.stopImmediatePropagation` will also prevent other handlers on the same element from running.
Here is a demo to illustrate the difference:

```js
document.querySelectorAll("button")[0].addEventListener('click', e=>{
  e.stopPropagation();
  alert(1);
});
document.querySelectorAll("button")[1].addEventListener('click', e=>{
  e.stopImmediatePropagation();
  alert(1);
});
document.querySelectorAll("button")[0].addEventListener('click', e=>{
  alert(2);
});
document.querySelectorAll("button")[1].addEventListener('click', e=>{
  alert(2);
});
```

```html
<div onclick="alert(3)">
   <button>1...2</button>
   <button>1</button>
</div>
```

Notice that you can attach multiple event handlers to an event on an element.