配列の lengthプロパティ について

挙動が不思議なのでメモ・・・。

1.整数以外の添字は認識しない。
以下の例では最後の a の添字が無視される。
ただ、aの添字にアクセスすることはできる・・・。
変な挙動だ・・・。

var array = new Array();
array[0] = 0;
array[1] = 1;
array["a"] = 2;
alert(array.length); // 2

2.要素の数ではなく、最大インデックス +1 を返す。
つまり、要素数が3でも、3つ目の要素のインデックスが1000であれば、
1001 を返す。
配列のインデックスは0から順番に使わないと・・・。

3.lengthプロパティに整数を代入することで、配列を削れる。
以下の例では配列の最後の要素を削っている。
var array = new Array();
array[0] = 0;
array[1] = 1;
array[2] = 2;
array.length = 2;

length = 0 にすると配列を空にすることができる。



とりあえず、以上。
使い勝手悪いな・・・。