• javascript
#30

【JavaScript】プリミティブ型はほぼオブジェクトという話

intro

こんにちは、Shumpei(@seventhseven)です。

今日はJSのラッパーオブジェクトについて書きます。

文字列型だけど一瞬プロパティが作られて、実行直後に破棄される動きです。

JSのラッパーオブジェクトの不思議

プリミティブ型の仕様

不思議に思ったこと

const falsy = "false";

if(falsy) {
  console.log(falsy.aa = "aa");
  console.log(falsy);
}

コンソール出力結果:
"aa"
"false"

オブジェクト的な扱いなのであれば、

"false"の中にkey aaのValue "aa"が存在するのでは?

どういうデータ構造になっているのかわからない


JSは基本全てオブジェクトであるが、プリミティブ型はほぼオブジェクトというような位置づけ

JSはエラー回避のため、上記のようなコードがあった場合、 実行用のオブジェクトが一瞬作られ、実行したら即破棄される

そのため、コンソールにはaa, falseとなった

仕様上の動きであり、String, Array, Number, Booleanなどの型でも同様の動き

これがラッパーオブジェクト

*

last update: 2023/10/21