JavaScript の質問用スレッド

このエントリーをはてなブックマークに追加
877(+_+)/~基本的なことでスンマソン
たいした疑問でもないのですが
基本型と参照型について勉強してます。
基本型には数値、論理値、null、未定義値が格納され、
参照型にはオブジェクト、配列、関数、などが格納されるのは
わかりました。
そこで参照型について質問ですが、
var a = [1@`2@`3]//変数に配列の参照を設定
var b = a; //この参照を新しい変数にコピーする
a[0] = 99; //元の参照を使って配列に変更を加える。
alert(b); //変更された配列[99@`2@`3]が表示される。新しい配列の参照が使用。

ここで1が格納されていても、[99@`2@`3]が表示されるのは、
0(ゼロ)を起点にしているからですか?