質問: new Boolean(false) // Booleanオブジェクトが返ってくる ``` `Boolean関数`に値を渡すと評価した値をtrue or falseで返してくれます ``` Boolean('hoge') // trueが返ってくる ``` `Boolean関数`は`true` or `false`が返ってくるので使いみちはなんとなく想像がつくのですが、`new Boolean`を使うタイミングがいまいち想像できません。 オブジェクトが返ってきてしまうため、引数に`false`をいれても、もちろんif分の条件に入れても全て通ります。 ``` if(new Boolean(false)){ console.log('もちろんココを通る') } ``` 当たり前ですが以下のようにもなります。 ``` Boolean(new Boolean(false)) // => true ``` どのようなときに`new Boolean`を使用するのでしょうか?
回答: ### プリミティブラッパーオブジェクト JavaScript は性質上、型変換が頻繁に発生する言語の為、**プリミティブラッパーオブジェクト**が存在しますが、コーダーがそれを積極的に使用する理由は特にないと考えます。 知識として覚えておけば十分です。 ### Object 型と Primitive 型の違い プリミティブラッパーオブジェクトは `Object` 型である為、「`Primitive` 型にはなく、`Object` 型である事」に優位性があれば、使用する価値があります。 ただし、他の書き方でも代替できる為、設計思想によっても人それぞれの書き方になるともいえます。 * `WeakMap()` で参照可能 * `===` で参照比較可能 * 任意のプロパティを書き込み可能 Re: MasakazuFukami さん