質問: javascriptにおけるインターフェースとはなんですか?
回答: NodeListは配列ではなく複数のNodeを要素として持つオブジェクトです。 JavaScriptは言語仕様としては他のプログラミング言語にあるようなInterfaceという物を持ちません。そのためここでいうNodeのインターフェースというのは、同じ名前(同じ型)のプロパティや同じ名前の(同じ型を返す)メソッドを全てもっているかという事です 以下のリンク先を見てもらえるとわかりますが、NodeListはNodeのプロパティやメソッドを持っていません。つまりNodeのインターフェースを実装してません - Node - NodeList Node.appendChildの引数はNodeのインターフェースを実装したオブジェクトを期待しているので、NodeListを渡した事でNodeのインターフェースを実装してませんという実行時のバリデーションエラーになっています