🌏
JavaScriptのグローバルオブジェクト
グローバルオブジェクトとは
すべてのスコープからアクセス可能なオブジェクト。
実行環境ごとに名称や提供されるAPIが異なる。
グローバルオブジェクトの種類
window(ブラウザ環境)
DOMやlocalStorageなど、ブラウザ特有のAPIを持つ。
また、window.alert()
のようなブラウザの組み込み機能を提供。
global(Node.js環境)
process
などのNode.js特有のAPIを含む。
globalThis(共通のグローバルオブジェクト)
ES2020で導入された、環境に依存しないグローバルオブジェクトの統一的な参照。
ブラウザではglobalThis === window
、Node.jsではglobalThis === global
となる。
グローバルオブジェクトとグローバルスコープ
グローバルオブジェクトとグローバルスコープは厳密には異なる。
ブラウザ環境では、window
がグローバルスコープの変数や関数のコンテナとして機能するが、
Node.jsでは多くの標準ライブラリはグローバルオブジェクトに直接含まれておらず、require()
やES Modules(import
/export
)を使って読み込む。
グローバルオブジェクトに含まれるものの例
window
/Node.jsglobal
)
共通(ブラウザ組み込みオブジェクト
-
Object
: オブジェクトを扱う基本クラス -
Array
: 配列を扱うオブジェクト -
Function
: 関数を作成・実行するためのオブジェクト -
Date
: 日付や時間を管理・操作するオブジェクト -
RegExp
: 正規表現を扱うオブジェクト -
Promise
: 非同期処理を扱うオブジェクト -
Map
/Set
: キーと値のペアやユニークな値の集合を管理 -
Symbol
: ユニークな識別子を生成 -
BigInt
: 超大きな整数を扱うためのデータ型 -
Math
: 数学関数や定数を提供 -
JSON
: オブジェクトとJSON文字列の変換 -
Error
(およびTypeError
,SyntaxError
など): エラーオブジェクト -
Intl
: 国際化(ロケール、通貨、日付フォーマット)関連の機能
ユーティリティ関数
-
setTimeout(fn, ms)
/setInterval(fn, ms)
: 指定時間後に関数を実行(1回 / 繰り返し) -
clearTimeout(id)
/clearInterval(id)
: タイマーの解除 -
parseInt(str, base)
/parseFloat(str)
: 文字列を整数 / 浮動小数点数に変換 -
isNaN(value)
/isFinite(value)
: 値がNaN(非数)か、有限数かを判定 -
eval(str)
:文字列をJavaScriptとして評価
エンコード・デコード関数
-
encodeURI(str)
/decodeURI(str)
: URL全体をエンコード / デコード -
encodeURIComponent(str)
/decodeURIComponent(str)
: URLの一部をエンコード / デコード
コンソールオブジェクト
-
console.log(value)
: 値をコンソールに出力
特殊値(グローバルに存在する定数)
-
NaN
: Not-a-Number(計算結果が数値でない) -
Infinity
: 正の無限大(負の無限大は-Infinity
) -
undefined
: 値が未定義であることを示す
window(ブラウザ環境)固有
DOM関連オブジェクト
-
document
: HTMLやDOM要素にアクセスするオブジェクト -
window
: ブラウザのウィンドウ全体を表すオブジェクト -
history
: ブラウザの履歴を管理 -
navigator
: ユーザーのブラウザやOS情報を取得 -
location
: 現在のURL情報を取得・変更 -
navigator.geolocation
: ユーザーの位置情報を取得
Web API
-
fetch(url)
: ネットワークリクエストを送信し、データを取得(非同期) -
localStorage
/sessionStorage
: クライアントサイドのデータ保存(永続 / 一時) -
IndexedDB
: 大量のデータを保存するためのデータベースAPI -
WebSocket
: 双方向通信を行うためのAPI -
Event
: イベントの処理を管理 -
addEventListener(type, fn)
/removeEventListener(type, fn)
: イベントを登録 / 削除
ブラウザ専用の関数(ユーザーインタラクション)
-
alert(message)
: アラートダイアログを表示 -
confirm(message)
: OK/キャンセルの確認ダイアログを表示 -
prompt(message, defaultValue)
: ユーザーから文字列を入力させる -
Notification
: デスクトップ通知を送信
アニメーション & 描画API(グラフィック関連)
-
requestAnimationFrame(callback)
: 高速でスムーズなアニメーションを実行 -
cancelAnimationFrame(id)
: アニメーションのキャンセル -
CanvasRenderingContext2D
:<canvas>
に2D描画を行うためのAPI -
WebGLRenderingContext
:<canvas>
のWebGL描画 -
OffscreenCanvas
: ワーカーでのCanvas描画を可能にする
global(Node.js環境)固有
Node.js用オブジェクト(環境・ファイル管理)
-
global
: Node.js のグローバルオブジェクト -
process
: Node.js のプロセス情報(環境変数・終了コード管理) -
Buffer
: バイナリデータを扱うオブジェクト
Node.jsのモジュール関連
-
import
/export
: 外部モジュールを読み込む(ES Modules形式) -
require(moduleName)
: 外部モジュールを読み込む(CommonJS形式)
標準ライブラリAPI(組み込みモジュール)
-
crypto
: 暗号化・ハッシュ関数を提供 -
os
: OSの情報取得(CPU・メモリなど) -
util
: ユーティリティ関数(デバッグ・データ変換など) -
events
: イベント駆動プログラミングをサポート -
stream
: ストリームデータ処理 -
zlib
: 圧縮・解凍(gzip, deflate) -
dns
: ドメイン名解決(DNSルックアップ)
Node.jsのイベントループ関連
-
setImmediate(fn)
: 次のイベントループで即時実行 -
process.nextTick(fn)
: 現在のイベントループの直後に実行
Node.jsのWorker関連
-
worker_threads
: マルチスレッド処理 -
cluster
: マルチプロセス処理(Node.jsを複数のCPUコアで実行)
Discussion
window にアクセスできない Web Worker の環境もありますね。( window の代わりに self か globalThis
ありがとうございます!
ウェブワーカーよく確認しときます(リンクまで助かります!)