2012年4月16日

ビルドイン関数とnewの違い

JavaScriptでは、基本的に型を意識していなかったのですが、思っていたのと動きが違いました。
文字列を数値型にしたいときになんとなく、
var num = new Number(srt);
とやってみたところ、型を厳密に受け取る(数値を期待している)Plug-inが正しく動いてくれません。

var num = new Number(srt);
console.log(typeof(num));
これを実行したところ、
object
と出力され、数値型ではなく、objectということがわかります。

数値に変換したい場合は、正しくはこう。

var num = Number(srt);
newをはずして、ビルドイン関数のNumberを使用します。

var num = Number(srt);
console.log(typeof(num));
number

数値型になっています。ステキ。

console.log(typeof(new String(10)));
console.log(typeof(String(10)));
object
string
Stringも一緒ですね。

console.log(typeof("10"-0));
number
「-0」とすれば、数値に変換されるみたいです。
でも、わかりづらいから、「+""」や「-0」のような、
型変換処理を書きたくないですね。

Number()やString()に対応していないブラウザが過去にあったみたいです。
ChromeやIE9だと大丈夫でした。

0 コメント:

コメントを投稿