log.metatype

$n (Type of Number)

もっと良い方法がありそうだけど、思いつきメモ。

JavaScriptの数値を、
条件式で扱う場合と、暗黙の型変換されると困る場合に
うまくできないかなと。

Snipplr$n

Posted by inamorix on December 6th, 2007

  1. function $n (n) {
  2.         return (typeof(n) == 'number') ? new Number(n) : NaN;
  3. }


条件式

条件式の中で「0」はfalse扱いなので、

alert(0 ? true : false);

は、falseが返る。

alert($n(0) ? true : false);

は、trueが返る。


型変換

文字列の数値は型変換されるけど、

alert($n('5') ? true : false);

は、falseが返る。

alert($n(5) * 100);

は、500が返る。

alert($n('5') * 100);

は、NaNが返る。

alert([] * 100);

は、0が返る。
自覚が無いとはまりそうなので、

alert($n([]) * 100);

は、NaNが返る。

Post a comment