Résumé
J'ai juste pensé à trois méthodes pour l'instant. Si les lecteurs pensent à d'autres bonnes méthodes, ils peuvent également communiquer.
pardent
opérateur de bits
Math.floor math.ceil
Description
1. Parseint
1. Exemple
ParseInt ("13nash"); // 13ParseInt ("") // NanparseInt ("0xa") // 10 (hexadecimal) Parseint ("13") // 13Parseint ("070") // ES3 est 56 (octal) ES5 est 70parseint (070) // deux ES3 et ES5 sont 56parles2. Règles de conversion:
(1). Selon l'exemple (1), Parseint sera analysé jusqu'à ce qu'il s'arrêtera lorsqu'il est non-nombre
(2). Selon l'exemple (2), c'est nan lors de l'analyse d'une chaîne vide, plutôt que 0
(3). Selon l'exemple (3), Parseint peut convertir les nombres hexadécimaux en décimaux
(4). Selon l'exemple (4), Parseint ignore les espaces de la chaîne
3. Inconvénients:
(1). Selon l'exemple (5), nous pouvons savoir que Parseint est incompatible lors de la conversion des tableaux octaux. ES3 considérera 070 comme une valeur octale, mais ES5 considérera 070 comme une décimale.
(2). Selon l'exemple (6) (7), nous pouvons savoir que lorsque ParseInt est exécuté, il convertira d'abord le paramètre en une chaîne, puis l'exécutera en entier
4. Explication: Pourquoi (5) (6) Les exécutions convertissent 070 en entiers, mais les résultats sont différents? C'est également le deuxième point de la façon de résoudre les lacunes.
Parce qu'en lisant la documentation officielle, j'ai vu si la chaîne n'est pas une chaîne, elle est convertie en une. Ce passage. C'est-à-dire que si le paramètre n'est pas une chaîne, il le convertira d'abord en chaîne puis en entier. Par exemple, ParseInt (070) dans l'exemple (6) convertit en fait 070 en une chaîne d'abord. Vous pouvez essayer 070+ "" ou String (070) et sache que 070 sera converti en "56" car 070 est un système octal. Ensuite, il devient Parseint ("56"), et l'entier final est de 56. Que vous soyez dans ES3 ou ES5, c'est 56
2. Opérateur de bits
1. Exemple
console.log (0 | "123.45") // 123Console.log (0 | 123.45) // 123Console.log (0 ^ 123.45) // 123Console.log (~~ 123.45) // 123
2. Principe: JavaScript n'a pas le concept d'entiers, et tous les types numériques sont des nombres à virgule flottante à double précision. Lors de l'utilisation des opérateurs de bits, il convertira d'abord l'opérande en entier, ce qui est pratique pour le fonctionnement. 0 et d'autres valeurs ne modifieront pas la valeur de fonctionnement
3. Math.floor et math.ceil
1. Exemple
console.log (math.floor (2.3) // 2Console.log (math.floor (-2.3) // - 3Console.log (math.ceil (2.3) // 3Console.log (math.ceil (-2.3) // - 2
2. Les deux sont insuffisants: Math.Floor obtient l'entier minimum du nombre; tandis que Math.ceil obtient l'entier maximum. Donc, si nous arrondions -2,3, nous obtiendrions -2, mais si nous utilisons Math.Floor, nous obtiendrions -3. 2.3 utilise Math.Ceil pour obtenir 3, mais nous avons juste besoin de 2.
3. Résoudre:
// Définissez une fonction de fonction par vous-même getInt (val) {return val> 0? Math.floor (val): math.ceil (val);}