【JavaScript】ラッパーオブジェクト - プリミティブ(リテラル)のラッパー

【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