En JavaScript la grammaire d'un Numeric Literal est exprimé comme ceci:
DecimalIntegerLiteral . DecimalDigitsopt ExponentPartopt
Comme vous pouvez le voir la partie DecimalDigits
après le point est en option (suffixe opt).
var n = 123.;
typeof n; // "number"
Je ne recommanderais pas la fonction isNaN
pour détecter le nombre, puisque coercition de type peut faire certaines choses semblent étrange:
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
doit être utilisé que pour comparer contre NaN
, depuis:
NaN == NaN; // false!
IsNaN(NaN); // true
Si vous voulez détecter Number
objets, Number
valeurs ou des chaînes numériques "parseable", jetez un oeil à this function J'ai posté il ya un certain temps.
Je ne comprends pas votre question. Puisque 123 ** est ** un nombre, le prédicat "est ** pas ** un nombre" est faux. Qu'attendez-vous? – Gabe
notez le point (.) Après 123 – vivekraman
En Javascript, 123 == 123. == 123.0 – squelart