グローバルオブジェクト

Objectなどのビルトインオブジェクトや、グローバルスコープのグローバル変数は、グローバルオブジェクトのプロパティに格納される。

グローバルオブジェクト名は、ブラウザではwindow、Node.jsではglobal、というように処理系で違うが、省略してプロパティ名だけでアクセスできる。文脈によっては「Mathオブジェクトはグローバルオブジェクト」とプロパティのことを省いて表現する。


ブラウザでのグローバルオブジェクトwindow

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>ブラウザのグローバルオブジェクトwindow</title>
</head>
<body>
  <script>
  // グローバルオブジェクトwindow
  console.log(typeof window) // object

  // ビルトインオブジェクトはグローバルオブジェクトのプロパティに格納されている
  // プロパティだけでアクセスできる
  console.log(Function === window.Function, Array === window.Array) // true true
  console.log(setTimeout === window.setTimeout) // true

  // グローバルオブジェクトのプロパティには自分自身も格納
  console.log(window === window.window) // true
  </script>
</body>
</html>