Hallo,
.getElementsByName() gibt je nach Browser ein Array bzw. einen Iterator (so etwas ähnliches, nur nicht mit allen prototypischen Möglichkeiten von Array - wer sich so etwas Beknacktes ausdenkt, arbeitet vermutlich für MicroSoft)
Knotenlisten gibts überall in der DOM-API, sowohl im Core als auch im HTML-DOM. Die stammen im Übrigen nicht von Microsoft, sondern vom W3C.
getElementsByName liefert eine HTMLCollection, und dass diese nicht identisch mit einem Array ist, ist klar: Sie ist "live", d.h. sie wird dynamisch aktualisiert, wenn sich der Knotenbaum ändert. Die meisten Array-Instanzmethoden zum Hinzufügen, Löschen und Sortieren ergeben in diesem Kontext keinen Sinn. Lediglich ECMAScript-5-Methoden wie forEach, map, filter usw. wären brauchbar. Das Ausführung von Array-Instanzmethoden im Kontext von HTMLCollections funktioniert auch, aber Array.prototype.forEach.call(htmlcollection, function() {}) usw. liefert einem aufgrund der hybriden Natur von HTMLCollections nicht das, was man erwartet.
Jannis