the reason is...
all of the above methods have a "return type", that is they give you/provide you with a value or object which can be stored in a variable. For each of the above methods "return type" can be different.
This is how it is...
This method returns "only" a "single" Element which has the "Id" given in the brackets/parentheses. Since, you know "ID" in html are global values which are unique. So no two elements can have the same ID.
Now these two methods above, both of these methods return a "HTML object collection" or a "NodeList". Now since it's a list. It can have any number of elements. And you know that "class" and "tag" can be same for multiple elements. That is why we have to iterate over this "list of objects" in order to apply the properties.