HTMLCollection returns a collection of elements.
NodeList returns a collection of nodes. The two types of NodeLists are static and live. Content in static NodeLists do not reflect changes made to the DOM. Content in live NodeLists do reflect those changes.
An HTMLCollection is live, similar to a live Nodelist. Both HTMLCollection and NodeList items can be returned by their index. Only HTMLCollection items can be returned by their ID or name.
HTMLCollection returns element collections, while NodeList returns node collections. A NodeList can be live or static, while an HTMLCollection is only live.