Javascriptのループ変数宣言の4つの一般的な書き方を簡単に分析_基礎知識
JavaScript のループ変数宣言はどこに置くべきですか?
習慣 1:
を宣言せずに直接使用するfunction loop(arr) { for (i = 0; i < arr.length; i++) { // do something } }
非常に危険な使用習慣。一般に、ループ変数はウィンドウ オブジェクトの属性になり、グローバルに使用されるため、プログラムの通常のロジック実装に影響を与える可能性が非常に高くなります。
厳密モードでは、変数を宣言せずに直接代入すると例外が直接スローされることに注意してください。これはずっと前に行われるべきでした。 ecma-262 標準の付録 C からの一節を引用します:
「宣言されていない識別子または解決できない参照への代入は、グローバル オブジェクトにプロパティを作成しません。単純な代入が厳密モード コード内で発生する場合、その LeftHandSide は解決できない Reference として評価されてはなりません。評価された場合、ReferenceError 例外がスローされます (6.2) .3.2)."
つまり、宣言されていない変数が再度使用されると、ReferenceError 例外がスローされます。
習慣 2: for ループの最初のステートメント ブロックに配置し、
を繰り返し宣言するfunction loop(arr) { for (var i = 0; i < arr.length; i++ ){ // do someting } // console.log(i); for (var i = 0; i < arr.length; i++ ){ // do something else } }
この方法は、最も安全で標準化されているようです。C や Java からフロントエンド開発に移行する多くの学生は、この方法を好みます。これは、JavaScript の重要な概念の誤解が原因である可能性があります。変数。 C や Java とは異なり、JavaScript には実際のブロックレベルのスコープがありません。つまり、最初のループが終了した後、console.log(i) は未定義を出力したり、ReferenceError 例外をスローしたりせず、正常に出力されます。配列の長さ。
もちろん、この書き方には美しいという以外の意味はほとんどありませんが、長い間互換性があり、仕様に違反することはありません。ecma 標準では、特定のスコープ内で同じ変数を繰り返し宣言することを禁止していません。
習慣 3:
を他の変数とともに関数の先頭で集中的に定義するfunction loop(arr) { var var1; var var2; var i; for (i = 0; i < arr.length; i++) { // do something } }
この c89 風の変数定義メソッドは、JavaScript ではほぼ完璧です。これは、JavaScript がブロックレベルのスコープをサポートしているという誤解を引き起こしたり、グローバルスコープを汚染したり、標準や仕様に違反したりすることはありません。ループ変数とループ本体が大きく離れている可能性があります。追加のコードに頼らずに、主要な主流ブラウザ メーカーが ECMAScript 6 に let キーワードを実装するのを待つ以外に、この問題を解決するより良い解決策はないようです。
習慣 4: ループ コードを IIFE にカプセル化する
function loop(arr) { (function () { for (var i = 0; i < arr.length; i++) { // do something } })(); }
最後の習慣は IIFE (Immediately-Invoked Function Expression) です。これはフロントエンド プログラマーにはよく知られており、関数をすぐに実行することを意味します。この方法の主な欠点は、作成が比較的面倒で、不必要なパフォーマンスの低下 (非常に小さい) があることですが、互換性とさまざまな標準への準拠という点では優れたパフォーマンスを発揮します。 開発者は、それほど面倒でなければ、このアプローチを採用できます。
上記は、JavaScript での 4 つの一般的なループ変数定義の記述方法の簡単な紹介と分析です。読者はそれぞれに独自の長所と短所を持っています。

ホット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)

ホットトピック











Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。
