すべての配列は、lenghtプロパティを持つ
配列がオブジェクトと異なっているのは、このlengthプロパティを持つ点です
[].length //0 ['a', 'b', 'c'].length //3 a = [1,2,3,4,5]; //5つの要素を持つ配列 a.length = 3; //aは[1,2,3]になる a.length = 0; //すべての要素を削除する。aは[]になる a.length = 5; //長さは5になるが、要素はない。new Array(5)と同じ
Object.defineProperty()
a = [1,2,3]; //3つの要素を持つ配列 Object.defineProperty(a, "length", //lengthプロパティを {writable: false}); //読み出し専用にする a.length = 0; //aは変更されない
参考書籍: