JavaScript の変数宣言構文の違いを明確にする
JavaScript のグローバル スコープでは、異なる構文で変数を宣言すると、実際に微妙な違いが生じる可能性があります。
お客様のご利用に関してオプション:
1. var a = 0;
「var」で変数を宣言すると、グローバル オブジェクトのプロパティとしても存在するグローバル変数が作成されます (ブラウザーの "window" や ES2020 の "globalThis" など) 。このプロパティは識別子のバインディングであるため、「delete」を使用して削除できません。
2. a = 0;
注意: この構文は使用しないことを強くお勧めします。 「var」または「let」キーワードがないと、JavaScript はこれを暗黙的なグローバル変数と見なしますが、厳密モードではエラーになります。そのため、これは推奨される方法ではありません。
3. window.a = 0;または globalThis.a = 0;
この構文は、プロパティをグローバル オブジェクトに明示的に割り当てます。 「var」とは異なり、これらのプロパティは「delete」で削除できます。
4. this.a = 0;
「this」に代入するとグローバル プロパティが作成されますが、イベント ハンドラーがあいまいになる可能性があるため、お勧めできません。
追加ES2015 構文:
1.1 let a = 0;
"let" は、グローバル オブジェクトのプロパティではないグローバル変数を宣言します。識別子のバインディングは、囲んでいるブロックの先頭で作成されますが、コードの実行が "let" 宣言に達した場合にのみアクセス可能になります。
1.2 const a = 0;
"let" と同様に、"const" はグローバル オブジェクトのプロパティではないグローバル定数を宣言します。ただし、定数の値は変更できません。
以上がJavascript の変数宣言構文の違いとその意味は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。