ホームページ > 記事 > ウェブフロントエンド > クライアント側の JS パフォーマンス最適化のヒント Organized_JavaScript スキル
クライアント側の JS パフォーマンスに関する最適化のヒントをいくつか紹介します。
1. JS ループに関しては、ループは一般的に使用されるプロセス コントロールです。 JS には、for(;;)、while()、for(in) の 3 種類のループが用意されています。これら 3 種類のループの中で、for(in) はハッシュ キーをクエリする必要があるため、最も効率が低くなります。そのため、for(;;) および while のパフォーマンスはできるだけ少なくする必要があります。 () ループは基本的に同じです。もちろん、ループ変数が増加または減少する場合は、ループ変数に値を代入せず、代わりにネストされた or -- 演算子を使用することをお勧めします。
2. 配列を走査する必要がある場合は、まず配列の長さを var len=arr.length; for(i=0;i
3. ローカル変数は関数のスタック上に配置されるのに対し、グローバル変数は実際にはウィンドウ オブジェクトのメンバーであるため、ローカル変数のアクセス速度はグローバル変数のアクセス速度よりも高速です。
4. eval を使用するたびに、特に json[i][variable]=1; のようなステートメントを使用する必要はありません。評価。
5. ステートメント obj1.obj2.obj3.obj4 については、最初に obj1 に obj2 が含まれるかどうかを確認し、次に obj2 に含まれるかどうかを確認する必要があります。 obj3. を実行し、obj3 に obj4 が含まれているかどうかを確認します。これは良い戦略ではありません。ネストされたクエリを避けるために、ローカル変数を使用し、obj4 をローカル変数に保存するようにしてください。
6. 演算子を使用する場合は、代入演算を直接実行するのではなく、=、-=、*=、= などの演算記号を使用するようにしてください。
7. 数値を文字に変換する必要がある場合は、次の方法を使用します: "" 1.パフォーマンスの観点から、数値を文字に変換する場合、次の式があります: ("" ) > String() > .toString() > new String()。 String() は内部関数であるため、非常に高速です。また、.toString() はプロトタイプ内の関数をクエリする必要があるため、new String() は文字列オブジェクトを再作成する必要があり、これが最も遅くなります。
8. 浮動小数点数を整数に変換する必要がある場合は、Math.floor() または Math.round() を使用する必要があります。 parseInt() を使用する代わりに、このメソッドを使用して文字列を数値に変換します。さらに、Math は内部オブジェクトであるため、実際には Math.floor() はクエリ メソッドや呼び出し時間が少なく、最も高速です。
9. var obj=new Object() メソッドの代わりに JSON 形式を使用してオブジェクトを作成してみます。前者は直接コピーするのに対し、後者はコンストラクターを呼び出す必要があるため、前者のパフォーマンスが優れています。
10. 配列を使用する必要がある場合は、JSON 形式の構文を使用するようにしてください。つまり、配列を定義するには、次の構文を使用する代わりに [parrm, param, param...] を使用します。 new Array(parrm, param ,param...) この構文。 JSON 形式を使用した構文はエンジンによって直接解釈されるためです。後者では、Array コンストラクターを呼び出す必要があります。
11. 正規表現を使用して、置換や検索などの文字列のループ操作を実行します。 JS のループ速度は比較的遅く、正規表現の操作は C で書かれた API であるため、パフォーマンスは比較的良好です。
最後に、基本的な原則があります。大きな JS オブジェクトの場合、作成時の時間とスペースのオーバーヘッドが比較的大きいため、キャッシュを可能な限り考慮する必要があります。