JavaScript ループ ステートメントのパフォーマンスの問題
最初の 3 つのループは他の言語でも非常に一般的ですほとんどのプログラミング言語では、ループステートメントがほとんどの時間を消費します
そして、ループ ステートメントは非常に重要なプログラミング パターンです。JavaScript には 4 種類のループがあります: -in ループ
for-in ループは学生にとっては初めてかもしれません。学校で C/C++ を学んだ人
各反復のプロパティでインスタンスとプロトタイプを同時に検索するため、反復ごとにより多くのオーバーヘッドが生成されます- for-in ループの速度は、最終的には他のループの 1/7 だけになります3 つのタイプ
- したがって、明らかに不明な数のプロパティを持つオブジェクトを反復する必要がない限り、それを避けるように努めるべきです for-in を使用します配列を走査するために for-in ループを使用しないでください
-
このようにオブジェクトをクリアします
var props = ['prop1', 'prop2'], i = 0;while(i < props.length){ fn(obj[props[i++]]); }
ログイン後にコピーこのコードは、オブジェクト内の属性に基づいてオブジェクト属性の配列を作成し、次に while を使用して属性リストをループし、対応する属性値を処理します - この方法では、すべての属性を検索する必要はありませんオブジェクトの属性を取得し、ループのコストを削減します上記のメソッドの前提は、オブジェクト内部の属性が既知であることです オブジェクトの内部属性がわからない場合、実装
- も処理する必要がありますこれはオブジェクト自体のプロパティのみを実行できますコストは、各反復でプロパティが継承されたプロパティではなくオブジェクト自身のプロパティであるかどうかを判断する必要があることです。
for(var prop in obj){ if(obj.hasOwnProperty(prop)){ //... } }
ログイン後にコピー
プログラミングを学んだばかりの友達は皆ループの書き方に慣れていると思います
for(var i = 0; i < arr.length; i++){ fn(arr[i]); }
このループステートメントが反復されるたびに、arrを検索する必要がありますlength 属性、これは非常に時間がかかります
それで、最適化できます
for(var i = 0, len = arr.length; i < len; i++){ fn(arr[i]); }
配列の長さに応じて, 多くのブラウザ 実行時間の約 25% を節約できます
配列の順序を逆にすることで、パフォーマンスをわずかに改善することもできます
for(var i = items.length; i--;){ process(items[i]); }
var j = items.length;while(j--){ process(items[j]); }
var k = items.length - 1;do { process(items[k]); }while(k--);
このようにして、各反復制御条件は 2 つの時間 (数値が
Reduce 1 つの判断 (True かどうか) については、ループ速度がさらに向上します
最後にいくつかの言葉
誰もが次のような配列メソッドを使用したことがあるかもしれません。 arr.forEach() または jQuery の $() などのフレームワーク反復メソッド、 each() を使用して配列を反復処理します。これらのメソッドは配列の各要素に対して関数を実行します
これらは便利ですが、通常よりもはるかに遅くなります。ループ (外部メソッドの呼び出し)すべての場合において、ループに基づいています。反復は関数ベースの反復より約 8 倍高速です。
そのため、通常のループ (for、while、do-while) を使用できる場合は、これらの通常のループ (for、while、do-while) を使用するようにしています。ループ (for、while、do-while) を使用して問題を解決します
上記は JavaScript ループ ステートメントのパフォーマンスの問題の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) を参照してください。 !

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

Vue がますます広く使用されるようになるにつれて、Vue 開発者は Vue アプリケーションのパフォーマンスとメモリ使用量を最適化する方法も考慮する必要があります。この記事では、開発者が一般的なメモリ使用量とパフォーマンスの問題を回避できるようにするための、Vue 開発におけるいくつかの注意事項について説明します。無限ループの回避 コンポーネントが自身の状態を継続的に更新する場合、またはコンポーネントが自身の子コンポーネントを継続的にレンダリングする場合、無限ループが発生する可能性があります。この場合、Vue のメモリが不足し、アプリケーションが非常に遅くなります。この状況を回避するために、Vue は

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。
