6時だョ!!全員集合!!

Rails・JavaScrictを中心にアウトプットします。

2021年12月11日 JavaScript (JS Primer) ラッパーオブジェクト

undefined と null を除いたものに対してはそれぞれラッパーオブジェクトが用意されています。

ラッパーオブジェクト プリミティブ型
Boolean 真偽値 trueやfalse
Number 数値 1や2
String 文字列 "文字列"
Symbol シンボル Symbol("説明")

プリミティブ型の値に対して対応するラッパーオブジェクトで用意されているメソッドを呼び出すと、自動的にプリミティブ型の値が対応するラッパーオブジェクトに変換され、その上でラッパーオブジェクトのメソッドが呼び出されます。

// プリミティブの文字列は"string"型
const str = "文字列";
console.log(typeof str); // => "string"
// ラッパーオブジェクトは"object"型
const stringWrapper = new String("文字列");
console.log(typeof stringWrapper); // => "object"

上記はtypeof演算子を使って違いを表しています。 一般的に生成されたインスタンスはstring型です。 new演算子で生成されたインスタンスはobject型となります。

メモ

  • JavaScript の new は、class からインスタンスをつくるものではありません。
  • new 演算子を使用すると、オブジェクト型やコンストラクタ関数を持つ組み込みオブジェクト型のインスタンスを作成することができます。
  • コンストラクタとはクラスをnewした瞬間に実行される関数のことです。
  • Rubyでコンストラクタと言えば、インスタンスを生成した際に1度だけ実行されるinitializeメソッドのことです。

参考

JS primer ラッパーオブジェクト