Tutoriel recommandé : Tutoriel JS
JavaScript est un langage magique, chaîne Il y a 5 façons de convertir des nombres, et chacune a ses propres pièges ! Ensuite, à travers cet article, je vais vous présenter les 5 méthodes de conversion de chaînes JavaScript en nombres et leurs pièges. Les amis intéressés devraient y jeter un oeil
Lequel choisir ? Et une sorte ? Quand le choisir ? Pourquoi choisir ce genre de chose ? Nous les passons en revue un par un et décomposons les pièges courants de chaque approche.parseInt
Sur la base des benchmarks de JsPerf.com, la plupart des navigateurs répondent mieux à parseInt. Bien que ce soit le moyen le plus rapide, vous rencontrerez certains pièges courants lors de l'utilisation de preseInt :parseInt('08') // returns 0 部分老浏览器. parseInt('44.jpg') // returns 44
parseFloat
C'est un très bon choix si vous n'analysez pas les nombres hexadécimaux. Par exemple :parseInt(-0xFF) // returns -255 parseInt("-0xFF") // returns -255 parseFloat(-0xFF) // returns -255 parseFloat("-0xFF") // returns 0
REMARQUE : les nombres hexadécimaux négatifs dans les chaînes sont un cas particulier, et si vous les analysez avec parseFloat, le résultat sera incorrect. Pour éviter les situations NaN dans votre programme, vous devez vérifier la valeur convertie.
parseFloat('44.jpg') // return 44
Pas au niveau du bit
Vous pouvez convertir une chaîne en un entier, mais ce n'est pas un nombre à virgule flottante. S'il s'agit d'une conversion de chaîne, elle renverra 0 ;~~1.23 // returns 1 ~~"1.23" // returns 1 ~~"23" // returns 23 ~~"Hello world" // returns 0
NOT au niveau du bit : Utilisez ceci pour vous assurer qu'il n'y a aucun caractère dans l'entrée, uniquement pour les entiers.
Numéro
Le nombre a le même problème que la méthode de conversion mentionnée ci-dessus Lors de l'analyse, il essaie de trouver le numéro que vous lui avez donné. :Number("023") // returns 23 Number(023) // returns 19
Remarque : 023 est en fait un nombre octal, qui renvoie 19 quelle que soit la façon dont vous le faites ; il en va de même pour les nombres hexadécimaux sans guillemets simples ou doubles.
Le nombre est également l'un des plus lents de JsPerf. Numéro : Je ne l'utilise pratiquement pas.Opérateur cloud unaire
"1.23" * 1 // returns 1.23 "0xFF" - 0 // returns 255 "0xFF.jpg" / 1 // returns NaN +"023" // returns 23
Résumé de la façon dont les chaînes sont converties en nombres
Lorsque les chaînes de nombres hexadécimaux négatifs sont converties en nombres. Tout ce qui doit d'abord être converti en chaîne (par exemple via + "" ), puis analysé en un nombre à l'aide d'opérateurs unaires ou parseInt avec radix. Mais lorsque le résultat n’est pas une valeur NaN, il est plus approprié d’utiliser parseFloat.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!