【JavaScript】ラッパーオブジェクト - プリミティブ(リテラル)のラッパー
JavaScriptのプリミティブ(リテラル)のラッパーオブジェクトについて解説します。
検証環境
ラッパーオブジェクト
ラッパーオブジェクトの広義の意味は“値とメソッドを持つオブジェクト”です。
一般的には数値や文字列などの単純な値(プリミティブまたはリテラルな値と呼ぶ)とメソッドを持つオブジェクトのことを指します。
プリミティブな値は標準でラッパーオブジェクトが用意されています。
プリミティブ型のラッパーオブジェクト
プリミティブ型の代表的なラッパーオブジェクトは次の3つです。
値 | プリミティブ型 | ラッパーオブジェクト |
---|---|---|
数値 | number | Number |
文字列 | string | String |
論理値 | boolean | Boolean |
これらのラッパーオブジェクトは様々なメソッドを備えています。
Number
Numberオブジェクトは数値(number)のラッパーオブジェクトです。
___ih_hl_start
let num = new Number(10);
___ih_hl_end
// 型の確認
console.log(typeof(num));
// 算術演算
let sum = num + 8;
console.log(sum);
// 文字列変換
let num_str = num.toString();
console.log(num_str, typeof(num_str));
object
18
10 string
Numberオブジェクトはobject
型ですが、数値型と同様に算術演算で扱えます。
また、メソッドが用意されており、例えばtoString
メソッドは数値を文字列に変換した値を取得できます。
String
Stringオブジェクトは文字列(string)のラッパーオブジェクトです。
___ih_hl_start
let str = new String("Hello World");
___ih_hl_end
// 型の確認
console.log(typeof(str));
// 文字列結合
let message = "Hey! " + str;
console.log(message);
// 文字の取得
let c = str.charAt(0);
console.log(c, typeof(c));
object
Hey! Hello World
H string
Stringオブジェクトはobject
型ですが、文字列型と同様に文字列結合で扱えます。
また、メソッドが用意されており、例えばcharAt
メソッドは実引数で与えた数値番目の文字を取得できます。
Boolean
Booleanオブジェクトは論理型(boolean)のラッパーオブジェクトです。
___ih_hl_start
let bool = new Boolean(true);
___ih_hl_end
// 型の確認
console.log(typeof(bool));
// 条件式
if( bool ) {
console.log("EXECUTE.");
}
// 論理演算
let b = bool && false;
console.log(b, typeof(b));
// 文字列変換
let bool_str = bool.toString();
console.log(bool_str, typeof(bool_str));
object
EXECUTE.
false 'boolean'
true string
Booleanオブジェクトはobject
型ですが、論理型(boolean)と同様に条件式や論理演算などで扱えます。
また、メソッドが用意されており、例えばtoString
メソッドは論理値を文字列に変換した値を取得できます。
自動変換
プリミティブ型の値に対してラッパーオブジェクトのメソッドを呼び出すと、必要に応じてラッパーオブジェクトに自動変換します。
ただし、プログラムで型が変わりませんのでご注意ください。
let num = 10;
console.log(typeof(num));
let num_str = num.toString();
console.log(typeof(num));
number
number