P115(7.6.2):配列要素の削除の注意点
配列要素にdelete()を掛けると要素が削除されるのではなく、未定義になるだけ。
var array = new Array("A", "B", "C"); alert(array); //A,B,C alert(array.length); //3 delete(array[1]); alert(array); //A,,C alert(array.length); //3 alert(array[0]); //A alert(array[1]); //undefined alert(array[2]); //C
未定義なので[1]で正常にアクセスもできるし、配列長も3を返す。