title: When is NodeList live and when is it static?
body: <p>From MDN for <a href="https://developer.mozilla.org/en-US/docs/Web/API/NodeList">NodeList</a>:</p>
  
  <blockquote>
    <p>In some cases, the NodeList is a live collection, which means that
    changes in the DOM are reflected in the collection. For example,
    Node.childNodes is live:</p>
  
  <pre><code> var parent = document.getElementById('parent');
   var child_nodes = parent.childNodes;
   console.log(child_nodes.length); // let's assume "2"
   parent.appendChild(document.createElement('div'));
   console.log(child_nodes.length); // should output "3"
  </code></pre>
    
    <p>In other cases,
    the NodeList is a static collection, meaning any subsequent change in
    the DOM does not affect the content of the collection.
    document.querySelectorAll returns a static NodeList.</p>
  </blockquote>
  
  <p>So .... kind of annoying! Is there any central reference for which methods return live lists and which ones return static lists, without having to check individually for all the various parts of the DOM API? Is there any <em>rule</em> at work here?</p>