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 (数値に変換不可能なオブジェクト)