Maison  >  Article  >  interface Web  >  Comment convertir une chaîne JS en nombre

Comment convertir une chaîne JS en nombre

不言
不言original
2018-07-09 14:52:341719parcourir

Cet article présente principalement la méthode de conversion d'une chaîne JS en nombre. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Il existe de nombreuses façons de convertir une chaîne en nombre. Numéro. , je peux penser à 5 sortes ! Mais il y a toujours certaines situations qui prennent les gens au dépourvu. Résumons-les ici pour votre commodité à l'avenir

parseInt

Selon le test de référence 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 : lorsqu'aucune base n'est transmise, la base transmise par défaut est 10 parseInt(num, 10), si vous ne le faites pas. connaissez le type d'attribut num, n'utilisez pas parseInt pour convertir des chaînes en nombres.

parseInt('043') // returns 0 部分老浏览器.
parseInt('20.mp4') // returns 20

parseFloat

C'est un très bon choix si vous n'analysez pas les nombres hexadécimaux. Les chiffres 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.

parseInt(-0xFF) // returns -255
parseInt("-0xFF") // returns -255
parseFloat(-0xFF) // returns -255
parseFloat("-0xFF") // returns 0
parseFloat('44.jpg') // return 44

Bitwise NOT

peut 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 ; Quel est le principe ? En retournant) chaque bit, également connu sous le nom de complément A1 du nombre. Vous pouvez l'utiliser, mais notez qu'il ne peut être utilisé que pour stocker des nombres entiers. Donc, en général, ne l'utilisez pas sauf si vous êtes sûr que le nombre est compris entre des entiers de 32 bits (en raison de la spécification d'appel de ToInt32). Bitwise NOT : utilisez ceci pour vous assurer qu'il n'y a aucun caractère dans l'entrée, uniquement pour les entiers.

~~1.23 // returns 1
~~"1.23" // returns 1
~~"23" // returns 23
~~"Hello world" // returns 0

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é : Remarque : 023 est en fait. Un nombre octal, quelle que soit la manière dont vous le faites, renvoie 19 ; il en va de même pour un nombre hexadécimal sans guillemets simples ou doubles. Le nombre est également l'un des plus lents de JsPerf.

Number("023") // returns 23
Number(023) // returns 19

Opérateur cloud unaire

"1.23" * 1 // returns 1.23
"0xFF" - 0 // returns 255
"0xFF.jpg" / 1 // returns NaN
+"023" // returns 23

L'opérateur unaire est différent des autres méthodes d'analyse S'il s'agit d'une valeur NaN, alors il renvoie NaN. C'est ma façon préférée de convertir des valeurs numériques, car je ne pense pas qu'un objet contenant des caractères doive être traité comme 0 ou "deviné" en fonction du nombre de bits dont il dispose. J’utilise essentiellement l’opérateur + car c’est moins déroutant. Bien que l'utilisation de -0 soit également bonne, elle n'exprime pas très bien l'intention initiale de conversion en nombre.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Introduction à la boucle for asynchrone js

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn