JSLintでは、次のように警告しています。
var x = new Array();
(これは実際の変数名ではありません)
var result = [];
最初の構文の何が問題になっていますか?提案の背後にある理由は何ですか?
Crockfordはnew
が好きではありません。したがって、 JSLintは、可能な場合は回避することを期待しています 。また、new
...を使用せずに新しい配列オブジェクトを作成することもできます。
JavaScriptでArray
の値を実際にオーバーライドできるため、new Array()
を使用するよりも[]
を使用する方が安全です。
Array = function() { };
var x = new Array();
// x is now an Object instead of an Array.
言い換えれば、[]
は明確です。
ブラウザや環境に応じて、使用している目的や目的に応じて、さまざまなパフォーマンスを得ることができるようです。
http://jsperf.com/new-array-vs-literal/11 ([1、.2] vs new Array(1、.2))この状況では、リテラルの方がはるかに高速です。
http://jsperf.com/new-array-vs-literal/7 (new Array(500000)vs [] .length(500000))newArrayはchrome v21このテストでは、実行内容に応じて約7%または30%)のようです。
どちらの形式でも問題はありませんが、通常は可能な限りリテラルが使用されています-
var s = ''はvars = new String()...よりもmore正しくありません。
最初の構文自体には何の問題もありません。実際、 w3schools では、配列を作成する方法としてnew Array()
がリストされています。問題は、これが「古い方法」であるということです。 「新しい方法」である_[]
_は短く、_["foo", "bar"]
_のように配列の値を初期化できます。ほとんどの開発者は、スタイルの点でnew Array()
よりも_[]
_を好みます。