0

今日、私はスタックオーバーフローでいくつかの投稿を行っていましたが、この返信がポップアップしました。 https://stackoverflow.com/a/2280350/548591

https://stackoverflow.com/a/11513602/548591

var name = [];
var name = new Array();

を初期化するよりも、リテラルの方がパフォーマンスの点で優れていますnew Array Object

今この記事を読んでいて、更新したかっただけです。

http://yuiblog.com/blog/2006/11/13/javascript-we-hardly-new-ya/

4

3 に答える 3

0

パーサーを作成するために ECMA Grammar を直接実装する作業から、次のことが言えます。

配列リテラル[]は直接解析されてから配列オブジェクトに変換されますが、new Array()最初に「式」として解析され、次に new キーワードがチェックされ、次に作成したいもの (この場合Arrayは ) がチェックされ、評価されます。

を使用することでどれだけのパフォーマンスが失われるかを正確に伝えることはできませんnew Array()。Javascript エンジンによって異なります。たとえば、V8 (Chrome) はコードをプリコンパイルして最適化するため[]、動作によってはとにかくリテラルに変換される可能性があります。

最も簡単な方法は、数十万の配列を作成し、それぞれリテラル宣言またはコンストラクター初期化でループの時間を測定するテスト関数を作成することです。

于 2013-02-12T13:51:55.127 に答える
0

ええ、テストによると、初期化[]は を使用するよりもはるかに高速ですnew Array。それに加えて、リテラル バージョンははるかに読みやすくなっています。
そして、これはすでに尋ねられています

于 2013-02-12T13:52:04.797 に答える
0

ブラウザによっては、リテラルは最大で 2 倍高速に表示されます。つまり、大きな違いがあるブラウザです。

于 2013-02-12T13:52:09.090 に答える