IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

文字列でもオブジェクトでもなんでも一発で数値に変換!

JavaScript では単体の + 演算で数値化が行われる

これを利用して数値っぽいか判定する関数を作ってみた。

このオブジェクト数値っぽい?

function isNumber(a) { return +a == a }

こんな感じで使う

isNumber(true);   // true  (true は 1 として扱うことができるから)
isNumber(false);  // true  (false は 2 として扱うことができるから)
isNumber("1e1");  // true  (数値に変換可能な文字列)
isNumber("hoge"); // false (数値に変換不可能な文字列)
isNumber({toString: function(){return "1"}});
                  // true  (数値に変換可能なオブジェクト)
isNumber({});     // false (数値に変換不可能なオブジェクト)

さらに、数値変換関数も作った!

parseIntより使いやすい!evalより安全!

function n(a) { if(+a!=a) throw Error('invalid number'); return +a; }