Skip to content

Latest commit

 

History

History
25 lines (15 loc) · 1.54 KB

File metadata and controls

25 lines (15 loc) · 1.54 KB

Arrayコンストラクター

Arrayコンストラクターはそのパラメーターの扱い方が曖昧なので、新しい配列を作る時には、常に配列リテラル - []記法 - を使用する事を強くお勧めします。

[1, 2, 3]; // 結果: [1, 2, 3]
new Array(1, 2, 3); // 結果: [1, 2, 3]

[3]; // Result: [3]
new Array(3); // 結果: []
new Array('3') // 結果: ['3']

このケースの場合、Arrayコンストラクターに渡される引数は一つだけですが、その引数はNumberになります。コンストラクターは、引数に値がセットされたlengthプロパティを伴った新しい配列を返します。特筆すべきなのは、新しい配列のlengthプロパティのみが、このようにセットされるという事です。実際の配列のインデックスは初期化されません。

var arr = new Array(3);
arr[1]; // undefined
1 in arr; // false, インデックスがセットされていない

配列の長さが先行してセットされるという振舞いは、いくつかの場合に便利です。例えば、文字の繰り返しや、for loopを使用したコードの回避などの場合です。

new Array(count + 1).join(stringToRepeat);

終わりに

Arrayコンストラクターの使用は出来る限り避けてください。リテラルが当然望ましい形です。それらは、短かく明快な文法にもってるいる為に、コードの可読性を高めてくれます。