1. 以前のバージョンのブラウザ (IE6、IE7 など) で文字列を連結する場合、+ 記号を使用して接続するよりも配列の結合メソッドを使用する方が効率的です (['aaa'、'bbb'、 'ccc'].join () は 'aaa'+'bbb'+'ccc') よりも効率的です。
2. 配列:
ポップはシフトよりも効率的であり、プッシュはシフト解除よりも効率的です。これは、バイナリ ヒープ構造を設計する場合に重要です。最大または最小の要素を配列の最後に配置するのが最善です。
3. 数値を四捨五入する場合は、シフト演算を使用するのが最善です。
1.1>>0;
4. 直接量を使用して配列とオブジェクトを作成します。
var a = [];
var o = {};
5. オブジェクトの検索を減らすために、オブジェクト レベルをネストしすぎないでください。
abcde は使用しないでください。この設計メソッドは e オブジェクトを取得します。
6. キーと値の対応する値は、スイッチの場合と比較して、キーと値の対応は、スイッチの場合よりも効率的で、さまざまなブラウザでテストされています。この比較に関する記事、JavaScript の小さな実験を読むことができます。
7. jq を使用する場合、$('xxxx').empty().append('xxxxxxx'); と $('xxxxx').html('xxxxx'); の比較も行われ、結果は次のようになります。 $ ('xxxx').empty().append('xxxxxxx'); が勝ち、記事のアドレスは jQuery の小さな実験です。
8. ループ
JavaScript では、for(;;)、while()、for(in) の 3 つのループを使用できます。このうち、for(in) はハッシュ キーをクエリする必要があるため、非常に非効率です。できる限り使用しないでください。 for(;;) と while ループのパフォーマンスは、(日常的に使用する場合には) 基本的に同等であると言えます。
ループ変数がインクリメントまたはデクリメントされる場合、最後に読み取られるときに、ネストされた ++ または -- 演算子をループ変数に単独で割り当てないでください。
配列の長さで比較したい場合は、事前に配列の長さ属性をローカル変数に入れておくとクエリ数が減ります。
9. ローカル変数とグローバル変数
ローカル変数は関数のスタックに配置されるのに対し、グローバル変数は実際にはグローバル オブジェクトのメンバーであるため、ローカル変数のアクセス速度はグローバル変数のアクセス速度よりも高速です。
10. Eval を使用しないでください
eval を使用することは、実行時にコンテンツを実行するために解釈エンジンを再度呼び出すことと同等であり、非常に時間がかかります。現時点では、関数テンプレートは JavaScript でサポートされているクロージャを使用して実装できます (クロージャの詳細については、関数プログラミングの関連コンテンツを参照してください)。
11. 文字列の連結
文字列を追加する場合は、s=s+anotherStr の代わりに s+=anotherStr 操作を使用するのが最善です。
12. 数値を文字列に変換し、「" + 1 を使用します。少し見苦しく見えますが、実際、パフォーマンスの点でこれが最も効率的です。
("" +) > String() > .toString() > new String()
この記事は、実際には、以下の「直接量」と多少似ていますが、実行時に使用されるユーザー操作よりも高速になるように、コンパイル時に使用できる内部操作を使用してみてください。
String() は内部関数であるため非常に高速ですが、 .toString() はプロトタイプ内の関数をクエリする必要があるため、正確なコピーを返すために new String() が使用されるほど高速ではありません。
13. 浮動小数点数を整数に変換する これは、よりエラーが発生しやすいものです。実際、parseInt() は、浮動小数点数と整数の間ではなく、文字列を数値に変換するために使用されます。 Math.floor() または Math.round()。
14. 文字列のトラバース操作
置換や検索などの文字列のループ操作を実行するには正規表現を使用する必要があります。これは、JavaScript 自体のループ速度が比較的遅く、正規表現の操作は C 言語で書かれた API であり、パフォーマンスが非常に優れているためです。 ;
15. タイマー
常に実行されているコードを対象としている場合は、setTimeout ではなく setInterval を使用する必要があります。 setTimeout は毎回タイマーをリセットする必要があります。
更新中…、楽しみにしていてください!