【JavaScript】ラッパーオブジェクト - プリミティブ(リテラル)のラッパー
JavaScriptのプリミティブ(リテラル)のラッパーオブジェクトをご紹介します。
ラッパーオブジェクト
ラッパーオブジェクトは値とメソッドを持つオブジェクトです。
数値や文字列などのプリミティブ(リテラル)な値はデフォルトでラッパーオブジェクトが用意されています。
プリミティブ型のラッパー
代表的なラッパーオブジェクトは次の3つです。
値 | プリミティブ型 | ラッパーオブジェクト |
---|---|---|
数値 | number | Number |
文字列 | string | String |
論理値 | boolean | Boolean |
これらのラッパーオブジェクトは様々なメソッドを備えています。
Number
Numberオブジェクトは数値(number)のラッパーオブジェクトです。
let num = new Number(10);
console.log(typeof(num));
let sum = num + 8;
console.log(sum);
let num_str = num.toString();
console.log(num_str);
console.log(typeof(num_str));
object
18
10
string
object
型ですが、数値型と同様の扱いができます。
また、メソッドが用意されており、例えばtoString
メソッドは数値を文字列に変換した値を取得できます。
String
Stringオブジェクトは文字列(string)のラッパーオブジェクトです。
let str = new String("Hello World");
console.log(typeof(str));
let message = "Hey! " + str;
console.log(message);
let c = str.charAt(0);
console.log(c);
console.log(typeof(c));
object
Hey! Hello World
H
string
object
型ですが、文字列型と同様の扱いができます。
また、メソッドが用意されており、例えばcharAt
メソッドは1文字目を取得できます。
Boolean
Booleanオブジェクトは論理型(boolean)のラッパーオブジェクトです。
let bool = new Boolean(true);
console.log(typeof(bool));
if( bool ) {
console.log("EXECUTE.");
}
let b = bool && false;
console.log(b);
console.log(typeof(b));
let bool_str = bool.toString();
console.log(bool_str);
console.log(typeof(bool_str));
object
EXECUTE.
false
boolean
true
string
object
型ですが、論理型(boolean)と同様の扱いができます。
また、メソッドが用意されており、例えばtoString
メソッドは論理値を文字列に変換した値を取得できます。
自動変換
プリミティブ型の値に対してラッパーオブジェクトのメソッドを呼び出すと、必要に応じてラッパーオブジェクトに自動変換します。
ただし、プログラムで型が変わりませんのでご注意ください。
let num = 10;
console.log(typeof(num));
let num_str = num.toString();
console.log(typeof(num));
number
number