En JavaScript la gramática de una Numeric Literal se expresa así:
DecimalIntegerLiteral . DecimalDigitsopt ExponentPartopt
Como se puede ver la parte DecimalDigits
después del punto es opcional (sufijo opt).
var n = 123.;
typeof n; // "number"
no recomendaría la función isNaN
para detectar los números, ya que tipo de coacción puede hacer que algunas cosas se ven extraña:
isNaN(""); // false, a empty string coerces to zero
isNaN("\n\t"); // false, a white-space string coerces to zero
isNaN(true); // false, boolean true coerces to 1
isNaN(false); // false, boolean false coerces to zero
isNaN(new Date); // false, Date objects coerce to its numeric timestamp
// etc...
isNaN
sólo debe utilizarse para comparar contra NaN
, desde:
NaN == NaN; // false!
IsNaN(NaN); // true
Si desea detectar objetos Number
, valores Number
o cadenas numéricas "analizables", eche un vistazo a this function que publiqué hace algún tiempo.
No entiendo su pregunta. Como 123 ** es ** un número, el predicado "es ** no ** un número" es falso. ¿Qué estás esperando? – Gabe
observe el punto (.) Después de 123 – vivekraman
En Javascript, 123 == 123. == 123.0 – squelart