NodeList is a live collection, and unwritten scripts are executed immediately (see script defer).
Try this and you will get an idea of ββwhat is going on:
<html> <head> <title></title> <style></style> <script type="text/javascript"> var elements = document.getElementsByTagName("div"); alert(elements.length); </script> </head> <body> <div>1</div> <script type="text/javascript"> </script> </body> </html>
source share