Comment vérifier si un nombre JavaScript est un véritable, numéro valide?

MON code est:

function isNumber(n){
return typeof n == 'number' && !isNaN(n);
}

window.onload=function(){
var a=0,b=1,c=2.2,d=-3,e=-4.4,f=10/3;
var shouldBeTrue=[a,b,c,d,e,f];

var aa="0",bb="1",cc="2.2",dd="-3",ee="-4.4",ff="10/3";
var shouldBeFalse=[aa,bb,cc,dd,ee,ff];

var aaa,bbb=true,ccc=false,ddd=document.getElementsByTagName('html');
var alsoTheseBeFalse=[aaa,bbb,ccc,ddd,""," ",,null,NaN];

for(var i=0;i<shouldBeTrue.length;i++)
    if(isNumber(shouldBeTrue[i]) != true) alert("x");
for(i=0;i<shouldBeFalse.length;i++)
    if(isNumber(shouldBeFalse[i]) != false) alert("x");
for(i=0;i<alsoTheseBeFalse.length;i++)
    if(isNumber(alsoTheseBeFalse[i]) != false) alert("x");
}

Que dois-je vérifier pour assurer ma fonction est de 101% parfait de toutes les façons? (aussi, si vous connaissez une meilleure fonction de s'il vous plaît dites-moi)

  • la fonction vous êtes à la recherche pour le rendre parfait? Vous pourriez commencer par donner vos variables de noms plus significatifs...
  • Il parle de la isNumber(n) fonction.
  • Il y avait numérique des cas, vous n'avez pas vérifier, mais je ne peux pas faire de votre fonction pause (ie: g=2E30, gg=0/0)
  • bien 0/0=NaN (et je n'ai vérifier pour ça), mais je suis curieux à propos de la "2E30' chose, car il renvoie la valeur true. Savez-vous pourquoi elle retourne vrai?
  • Note de côté, à l'intérieur de votre cas de test, vous utilisez != false. Ce n'est pas nécessaire, parce que votre isNumber fonction retourne toujours une valeur booléenne (true ou false). Dans if ( ... ), une des expressions est toujours treathed comme une valeur booléenne. if (isNumber(a) != false) est équivalent à if (isNumber(a) == true) est équivalent à if (isNumber(a)).
InformationsquelleAutor | 2011-12-15