まず、
document.querySelector("#elem");
document.getElementId とは異なり、クラスを返すことができるという利点があります。ただし、そのクラス名を持つ最初のオブジェクトのみを返すという事実によって、これの有用性は大幅に低下します。したがって、そのクラス名を持つ最初のオブジェクトを特に探していない場合は、ID を使用することもできます。使用する場合は、
document.querySelectorAll
ただし、私は信じています (私は間違っているかもしれません)、そのクラス名を持つすべてのアイテムを配列として返します。通常の querySelector は querySelectorAll[0] と同等です。もう 1 つの利点は、それを介して css3 クエリを実行できることです。これは非常に便利です。
第二に、
document.getElementById("elem");
ほぼ5 倍高速であるという意味で、queryselector よりも優れた利点があるため、数千行のコードがあり、そのコードを最適化したい場合は、getElementById が最適です。
最後に、
document.querySelector("[id=elem]");
個人的には、これをどのような状況でも使用する必要はないと思います。querySelector が必要な場合は、単に # を使用しないのはなぜですか? これは querySelector の最初の例とまったく同じですが、役に立たない文字がたくさんあります。
編集:明確にするために、要約すると、おそらくdocument.getElementByIdを使用した方がよいでしょう。