数値や文字列で、明示的にオブジェクト型を使う意味を教えてください。
つまり
JavaScript
1var v = 1;
ではなく、
JavaScript
1var v = new Number(1);
とする意義についてです。
私の今の考えとしては特に意義などなく、オブジェクト型なんていらないんじゃないかと思っています。ただ、用意されているということは何かしら使い分けると意味のあるケースもあるのかもしれないと思っています。
両者の違いとしては、typeofの結果などが異なるには異なります。前者はnumber、後者がobjectです。そこが違って困ることがあるのかわかりません。むしろ、すべてnumberと評価された方が扱いやすいと思うのに、と思ってしまいます。
言うまでもないことですが、プリミティブ型でも明示的にオブジェクトが作成されるので、メソッドやプロパティへのアクセスも問題ありません。
あえて絞り出すと、オブジェクト型にすることにより、独自のプロパティを持たせ状態を保持することが可能になりますが、そんな使い方をしている例をみたことがありませんし、クソコードに感じます。
…と考えていくと、オブジェクト型を使うことのメリットもしくは意義が思い浮かびませんでした。
数値や文字列で、明示的にオブジェクト型を使う意味を教えてください。
よろしくお願いします。
###補足情報
型変換の話をされる方がいらっしゃいましたので、念のため書いておきます。
JavaScript
1var n = "12.34"; 2console.log(typeof Number(n)); 3console.log(typeof Number.parseInt(n)); 4console.log(typeof Number.parseFloat(n));
上記はすべてnumberです。型変換をするだけならこれで十分ではないかと思います。一方、下記はobjectです。new演算子を使って明示的にインスタンスを作成することにより、はじめてobjectになります。
JavaScript
1console.log(typeof new Number(n));
ここまでは知っていることを前提として、「new Number」と書かなければならないケースがあるのか、それは具体的にどのようなケースかというのが質問の主旨です。
回答4件
あなたの回答
tips
プレビュー