ホームページ >ウェブフロントエンド >jsチュートリアル >Javascriptの変数宣言構文(グローバル変数を含む)の違いは何ですか?

Javascriptの変数宣言構文(グローバル変数を含む)の違いは何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-01 21:24:12191ブラウズ

What are the Differences in Javascript Variable Declaration Syntaxes (Including Global Variables)?

JavaScript の変数宣言構文の違い (グローバル変数を含む)

はじめに

JavaScript には変数を宣言するための複数の構文が用意されています、var、let、および const キーワードを含みます。これらの構文は、動作、スコープ、およびグローバル オブジェクトとの対話の点で異なります。

構文と動作の違い

1. var a = 0;

  • グローバル オブジェクト (ブラウザーのウィンドウ、または他のプラットフォームではこれ) のプロパティとなるグローバル変数を宣言します。
  • 変数バインディングはコードが実行される前に作成され、グローバル スコープ全体でアクセスできるようになります。
  • 作成されるプロパティは次のとおりです。

1.1 a = 0 とします。 (ES2015 で導入)

  • グローバル環境内でグローバル変数を宣言しますが、グローバル オブジェクトのプロパティとしては宣言しません。
  • 変数バインディングはコードの実行前に作成されます。ただし、let ステートメントに到達するまで変数にはアクセスできません (時間的デッド ゾーン)。
  • 変数はブロック スコープです。 var.

1.2 const a = 0; とは異なります。 (ES2015 で導入)

  • let に似ていますが、定数 (不変) 変数を宣言します。
  • 初期値を割り当てる必要があります。
  • 偶発的な値を防止します。再割り当て。

2. a = 0;

  • キーワードを使用せずにグローバル変数を暗黙的に宣言しようとします。
  • 特に厳密モードでは、エラーが発生する可能性があるため、強くお勧めしません。

3. window.a = 0;

  • プロパティをグローバル オブジェクトに明示的に割り当て、実質的にグローバル変数を作成します。
  • globalThis.a = 0; と記述することもできます。 (ES2020 で導入) または this.a = 0;グローバル スコープ内。

4. this.a = 0;

  • window.a = 0; と同様です。ただし、グローバル オブジェクトにアクセスするためにこれを使用します。
  • 下位互換性のために、または縮小化やその他の最適化による潜在的な問題を回避するために使用できます。

以上がJavascriptの変数宣言構文(グローバル変数を含む)の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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