ホームページ  >  記事  >  ウェブフロントエンド  >  クライアント側の JS パフォーマンス最適化のヒント Organized_JavaScript スキル

クライアント側の JS パフォーマンス最適化のヒント Organized_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 17:17:27989ブラウズ

クライアント側の 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 オブジェクトの場合、作成時の時間とスペースのオーバーヘッドが比較的大きいため、キャッシュを可能な限り考慮する必要があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。