web-dev-qa-db-fra.com

dactylographie en javascript

Comment puis-je vérifier si une variable est actuellement un type entier? J'ai cherché une sorte de ressource pour cela et je pense que l'opérateur === est important, mais je ne sais pas comment vérifier si une variable est un entier (ou un tableau d'ailleurs)

63
sova

Une variable ne sera jamais un type entier en JavaScript - elle ne fait pas la distinction entre les différents types de Number.

Vous pouvez tester si la variable contient un nombre et si ce nombre est un entier. 

(typeof foo === "number") && Math.floor(foo) === foo

Si la variable peut être une chaîne contenant un entier et que vous voulez voir si c'est le cas: 

foo == parseInt(foo, 10)
108
Quentin

De nos jours, ECMAScript 6 (ECMA-262) est "dans la maison". Utilisez Number.isInteger(x) pour poser la question que vous souhaitez poser concernant le type de x:

js> var x = 3
js> Number.isInteger(x)
true
js> var y = 3.1
js> Number.isInteger(y)
false
11
dat

Un nombre est un entier si son modulo% 1 est 0-

function isInt(n){
    return (typeof n== 'number' && n%1== 0);
}

C’est aussi bon que javascript, disons + - dix au 15. 

isInt (Math.pow (2,50) +. 1) renvoie true, tout comme

Math.pow (2,50) +. 1 == Math.pow (2,50) // true

6
kennebec
var a = 1;

if (typeof a == 'number') {
  // ...
}
1
Kai

Je sais que vous êtes intéressé par les nombres entiers, je ne vais donc pas vous répondre, mais si vous avez toujours voulu vérifier les nombres en virgule flottante, vous pouvez le faire. 

function isFloat( x )
{
    return ( typeof x === "number" && Math.abs( x % 1 ) > 0);
}

Remarque: Ceci PEUT traiter les numéros se terminant par .0 (ou tout nombre logiquement équivalent de 0 ') comme un INTEGER. En réalité, une erreur de précision en virgule flottante est nécessaire pour détecter les valeurs en virgule flottante dans ce cas.

Ex.

alert(isFloat(5.2));   //returns true
alert(isFloat(5));     //returns false
alert(isFloat(5.0));   //return could be either true or false
0
Dan

Essayez ce code:

alert (typeof (1) == "numéro");

0
eSniff

Vous pouvez également consulter Runtyper -, un outil qui vérifie le type des opérandes dans === (et d’autres opérations).
Pour votre exemple, si vous avez une comparaison stricte x === y et x = 123, y = "123", il va automatiquement vérifier typeof x, typeof y et afficher un avertissement dans la console:

Comparaison stricte de différents types: 123 (nombre) === "123" (chaîne)

0
vitalets

De nombreuses bibliothèques d'utilitaires telles que YourJS offrent des fonctions permettant de déterminer si quelque chose est un tableau ou si quelque chose est un entier ou beaucoup d'autres types. YourJS définit isInt en vérifiant si la valeur est un nombre et si elle est divisible par 1:

function isInt(x) {
  return typeOf(x, 'Number') && x % 1 == 0;
}

L'extrait ci-dessus a été extrait de cet extrait YourJS et ne fonctionne donc que parce que typeOf est défini par la bibliothèque. Vous pouvez télécharger une version minimaliste de YourJS contenant principalement des fonctions de vérification de type telles que typeOf(), isInt() et isArray(): http://yourjs.com/snippets/build/34,2

0
Chris West