JavaScript では、グローバル オブジェクトはすべての開発者にとって重要な概念です。これには、プログラム内でグローバルにアクセス可能なすべての変数、関数、オブジェクトが含まれます。この投稿では、グローバル オブジェクトとは正確には何なのか、さまざまな環境でグローバル オブジェクトがどのように動作するのか、また、効果的でクリーンで保守しやすいコードにはグローバル オブジェクトを正しく管理することがなぜ重要なのかを説明することを目的としています。
グローバル オブジェクトとは何ですか?
グローバル オブジェクトは、JavaScript が実行される環境として理解できます。これは、すべてのグローバル変数と関数のコンテナーです。ブラウザーでは、グローバル オブジェクトは window _ですが、Node.js では _global です。関数の外で宣言されたグローバル変数または関数は、グローバル オブジェクトを通じてアクセスできます。
ブラウザ
var a = 1; console.log(window.a); // 1
Node.js
var a = 1; console.log(global.a); // 1
グローバル スコープと変数
グローバルに宣言された変数は、グローバル オブジェクトにアタッチされます。複数のスクリプトが同じグローバル空間を共有している場合、ここで競合が発生する可能性があります。
var を使用してグローバル スコープ内で同じ名前の変数を宣言する 2 つの異なるスクリプトがあると想像してください。
スクリプト 1
var message = "Hello!"; console.log(message) // Hello!
スクリプト 2
var message = "Goodbye!"; console.log(message); // Goodbye!
両方のスクリプトを実行すると、var を使用してグローバル スコープでメッセージ変数を宣言します。 2 番目のスクリプトは、スクリプト 1 で設定されたメッセージの値を上書きします。これは、両方の変数が同じグローバル空間 (ブラウザーでは window) に保存されているためです。 これにより出力に違いが生じます。
これを回避するには、グローバル変数の使用を制限することが最善です。スコープをできるだけローカルに保ちます。
globalThis および ウィンドウ
最近まで、開発者はグローバル オブジェクトにアクセスするには、ブラウザーのウィンドウと Node.js のグローバルを使用する必要がありました。ただし、ES2020 では、複数の環境にわたってグローバル オブジェクトにアクセスするための統一された方法である globalThis が導入されました。 globalThis は、グローバル オブジェクトへのアクセスを標準化します。
グローバル関数とオブジェクト
グローバル オブジェクトには、console、setTimeout _and _setInterval、JSON、Math。グローバル オブジェクトを直接参照しなくても、これらにグローバルにアクセスできます。
では、クリーンで効果的なコードを維持しながら、ベスト プラクティスを維持するにはどうすればよいでしょうか?グローバル オブジェクトは便利ですが、これに依存しすぎると問題が発生する可能性があります。いくつかのアドバイスがあります: 名前の競合や意図しない副作用のリスクを軽減するためにグローバル変数 (var) の使用を避け、代わりに関数内でローカル変数を使用してください。 let と const を使用します。ブラウザ内のグローバル オブジェクト
ブラウザでは、ウィンドウ オブジェクトは単なるグローバル コンテナではありません。また、DOM (document)、ブラウザー API (fetch)、その他の Web 固有のオブジェクトも保持します。これにより、ウィンドウがブラウザベースの JavaScript 実行の中心となります。
Node.js のグローバル オブジェクト
Node.js では、グローバル オブジェクトは global ですが、ブラウザーのウィンドウのように自動的に変数を追加しません。 Node.js では、グローバル名前空間をクリーンで構造化した状態に保つためにモジュールの使用を推奨しています。
結論
グローバル オブジェクトは、JavaScript がグローバル変数、関数、オブジェクトを処理する方法の中心となります。さまざまな環境でどのように動作するかを理解し、控えめに使用し、ベスト プラクティスに従うと、クリーンで保守しやすいコードを作成するのに役立ちます。 let または const を使用してグローバル変数を最小限に抑えることで、問題を回避し、JavaScript スキルを向上させることができます。
出典:
グローバル_オブジェクト
グローバルオブジェクト
以上がJavaScript のグローバル オブジェクトの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。