Object
などのビルトインオブジェクトや、グローバルスコープのグローバル変数は、グローバルオブジェクトのプロパティに格納される。
グローバルオブジェクト名は、ブラウザではwindow
、Node.jsではglobal
、というように処理系で違うが、省略してプロパティ名だけでアクセスできる。文脈によっては「Mathオブジェクトはグローバルオブジェクト」とプロパティのことを省いて表現する。
<!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>