グローバル変数を含む JavaScript の変数宣言の構文のバリエーション
はじめに:
JavaScript変数を宣言するためのさまざまな構文オプションを提供します。謎の var キーワードとその代替キーワード。この記事では、グローバル スコープ内のこれらの宣言メソッドの主な違いについて説明します。
変数宣言構文:
-
var a = 0;: この従来の構文は、a という名前のグローバル変数に値を割り当てます。これは、グローバル オブジェクト (通常はウィンドウ) のプロパティになります。ブラウザ内)。
-
a = 0;: var キーワードを省略すると暗黙的にグローバル変数が作成されるため、強く推奨されません。厳密モードではエラーが発生しやすくなります。
-
window.a = 0;: このアプローチでは、プロパティを明示的に設定しますグローバル オブジェクト上で、主に外部フレームワークまたはライブラリから変数にアクセスするために使用されます。
相違点:
1.オブジェクト バインディング:
- var 宣言は、グローバル オブジェクトの環境レコードに識別子バインディングを作成します。
- let および const 宣言は、別の宣言環境レコードに識別子バインディングを作成し、それらの変数を作成します彼らの外からはアクセスできないスコープ。
2.アクセス時間 (時間的デッド ゾーン):
- var バインディングはコードの実行前に作成され (グローバル スコープ)、すぐにアクセスできます。
- let および const バインディングはコードの前に作成されます。実行されますが、対応する宣言ステートメントに到達するまでアクセスできません (Temporal Deadゾーン).
3.プロパティの作成:
- var はグローバル オブジェクトに列挙可能なプロパティを作成します。
- let と const はグローバル オブジェクトにプロパティを作成しません。
4.外部コンテキストからの変数へのアクセス:
- window.a では、var 宣言を認識しない可能性のある外部フレームワークまたはライブラリからグローバル変数にアクセスできます。
追加ES2015 からの構文の変化(ES6):
-
let a = 0;: ブロックスコープを持つ非グローバル変数を作成します。
-
const a = 0;: ブロックを使用して非グローバル定数を作成しますscope.
結論:
これらの構文のバリエーションを理解することは、効果的な JavaScript 開発にとって重要です。 var は伝統的なものですが、スコープ管理の向上とパフォーマンスの最適化の強化のために、一般に let と const を使用することが好まれます。 window.a 構文は、特定の状況で引き続き役立ちます。
以上がJavaScript でのグローバル変数の宣言において、`var`、`let`、`const`、および `window.a` はどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。