JavaScript入門 | 標準オブジェクト | グローバルオブジェクトとラッパーオブジェクト
グローバルオブジェクト
グローバルオブジェクトとは、JavaScriptにあらかじめ定義されているオブジェクトであり、グローバルプロパティやグローバル関数を格納する場所として機能する。グローバルオブジェクト自体は、グローバルスコープでthis演算子を通じてアクセスできる。
JavaScriptでは、すべてのオブジェクトがグローバルオブジェクトのプロパティになる。Webブラウザが新しいページを読み込むと、JavaScriptは新しいグローバルオブジェクトを作成し、そのプロパティを初期化する。
ラッパーオブジェクト
var str = "文字列"; // 文字列を作成
var len = str.length; // 文字列プロパティであるlengthを使用
上の例で作成した文字列リテラルstrはオブジェクトではないが、lengthプロパティを使用できる。これは、プログラムが文字列リテラルstrのプロパティを参照しようとすると、JavaScriptがnew String(str)を呼び出したかのように、文字列リテラルを自動的にオブジェクトへ変換するためである。
このように作成された一時オブジェクトは、Stringオブジェクトのメソッドを継承し、プロパティを参照するために使用される。その後、プロパティの参照が終わると、使用された一時オブジェクトは自動的に削除される。このように、数値、文字列、真偽値などのプリミティブ型のプロパティにアクセスしようとするときに作成される一時オブジェクトをラッパーオブジェクトという。
var str = "文字列"; // 文字列リテラルを作成
var strObj = new String(str); // 文字列オブジェクトを作成
str.length; // リテラル値は内部的にラッパーオブジェクトを作成してからlengthプロパティを参照する。
str == strObj; // 等価演算子はリテラル値とそのラッパーオブジェクトを同じものとして扱う。
str === strObj; // 厳密等価演算子はリテラル値とそのラッパーオブジェクトを区別する。
typeof str; // string型
typeof strObj; // object型
標準オブジェクト
JavaScriptにおける標準オブジェクトは、他のオブジェクトの基礎となる中核的なオブジェクトである。
よく使われる代表的なJavaScript標準オブジェクトは次の通りである。
- Numberオブジェクト
- Mathオブジェクト
- Dateオブジェクト
- Stringオブジェクト
- Arrayオブジェクト