а
var a = NaN;
var b = 1;
var c = {};
var d = Infinity;
var e = null;
function isNumber(x) {
return (typeof x == "number" || x instanceof Number) && isFinite(x);
}
alert([isNumber(a), isNumber(b), isNumber(c), isNumber(d), isNumber(e)]);
UPD: уже вижу недостатки, хоть они и не всегда актуальны