What about:
function isNumber(n){
return typeof(n) != "boolean" && !isNaN(n);
}
The isNaN built-in function is used to check if a value is not a number.
Update: Christoph is right, in JavaScript Boolean types are convertible to Number, returning the 1 for true and 0 for false, so if you evaluate 1 + true
the result will be 2.
Considering this behavior I've updated the function to prevent converting boolean values to its numeric representation.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…