document.quetySeletorallで同じクラス名を持つ要素の集合を受け取ってそれに対してDOM操作を行いたいです。
しかし、document.querySelectorAllはいわば配列もどきみたいな形で結果を受け取るようなのでTopがDOMノードではないので使えないとエラー出てきます。

配列であればそのまま使えますが、Topは配列そのものではない、つまりDOMノードになっていないのでこのままでは利用できずにDOMノードに変換する必要があると聞きます。

Q1 どんな処理をするとTopをDOMノードに変換できるのでしょうか?

Q2 このTopは配列とはどう違うのでしょうか?

var Top = document.querySelectorAll('.top');

document.querySelector('#js').addEventListener('click', function() {
    Array.prototype.forEach.call(Top,function(x){
        x.parentNode.insertBefore(Top, x);
    });
});