次のように配列を宣言することの実際の違いは何でしょうか。
var myArray = new Array();
そして
var myArray = [];
ベストアンサー1
違いはありますが、この例では違いはありません。
より冗長な方法を使用する:new Array()
パラメータに 1 つの追加オプションがあります: コンストラクターに数値を渡すと、その長さの配列が取得されます:
x = new Array(5);
alert(x.length); // 5
配列を作成するさまざまな方法を説明します。
var a = [], // these are the same
b = new Array(), // a and b are arrays with length 0
c = ['foo', 'bar'], // these are the same
d = new Array('foo', 'bar'), // c and d are arrays with 2 strings
// these are different:
e = [3] // e.length == 1, e[0] == 3
f = new Array(3), // f.length == 3, f[0] == undefined
;
もう一つの違いは、 を使用するとnew Array()
配列のサイズを設定でき、それがスタックサイズに影響することです。これはスタックオーバーフローが発生している場合に役立ちます (Array.push と Array.unshift のパフォーマンス) は、配列のサイズがスタックのサイズを超えた場合に発生し、再作成が必要になります。そのため、new Array()
オーバーフローの発生を防ぐことができるため、ユースケースによっては、 を使用するとパフォーマンスが向上する可能性があります。
指摘されているようにこの答えは、実際に配列にnew Array(5)
5 つの項目を追加するわけではありません。単に 5 つの項目のためのスペースを追加するだけです。この方法を使用すると、計算に頼るのが難しくなることに注意してください。undefined
Array
array.length