document.querySelectorAll() returns a NodeList, which is a collection of nodes that match the specified selector. Unlike the live HTMLCollection returned by methods like getElementsByClassName(), a NodeList is static, meaning it doesn't update when the document changes. However, it does have more built-in methods, such as forEach(), which makes it generally easier to work with than HTMLCollection in modern JavaScript development.