appendChildする際、親要素に[0]を付与する条件がよく分かりません


getElementById
・[0]不要?

var p = document.createElement("p");
document.getElementById('target').appendChild(p);

getElementsByClassName
・[0]必要?

var p = document.createElement("p");
document.getElementsByClassName('target')[0].appendChild(p);

document.属性
・[0]不要?
・もしくは属性に因る?

var p = document.createElement("p");
document.body.appendChild(p);

あるいは取得結果数によるのでしょうか?
・getElementsByClassNameでも、取得結果が1件なら、[0]不要?