このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Global object (グローバルオブジェクト)

グローバルオブジェクトは JavaScript において、グローバルスコープを表すオブジェクトです。

メモ: グローバルスコープ内のオブジェクトであるグローバルに利用可能なオブジェクトは、グローバルオブジェクトと呼ばれることもありますが、厳密に言えば、環境ごとにグローバルオブジェクトは 1 つしか存在しません。

どの JavaScript 環境においても、常にグローバルオブジェクトが定義されています。グローバルオブジェクトのインターフェイスは、スクリプトが実行されている実行コンテキストによって異なります。例を示します。

  • ウェブブラウザーでは、明示的にバックグランドタスクとして起動されるコードを除き、 Window がグローバルオブジェクトになります。ウェブにおける JavaScript コードのほとんどはこのケースに該当します。
  • Worker 内で実行されるコードでは WorkerGlobalScope オブジェクトがグローバルオブジェクトになります。
  • Node.js で実行されるスクリプトの場合、 global と呼ばれるオブジェクトがグローバルオブジェクトになります。

globalThis グローバルプロパティを使用すると、現在の環境に関係なくグローバルオブジェクトにアクセスすることができます。

スクリプトの最上位にある var 文および 関数宣言 は、グローバルオブジェクトのプロパティを作成します。一方、let および const 宣言は、グローバルオブジェクトのプロパティを作成することはありません。

グローバルオブジェクトのプロパティは、自動的にグローバルスコープに追加されます。

JavaScriptでは、グローバルオブジェクトは常に自分自身への参照を保持しています。

js
console.log(globalThis === globalThis.globalThis); // true (どこでも)
console.log(window === window.window); // true (ブラウザーで)
console.log(self === self.self); // true (ブラウザーまたはウェブワーカーで)
console.log(frames === frames.frames); // true (ブラウザーで)
console.log(global === global.global); // true (Node.js で)