"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > parseInt() vs Number() : en quoi diffèrent-ils dans la conversion chaîne-nombre ?

parseInt() vs Number() : en quoi diffèrent-ils dans la conversion chaîne-nombre ?

Publié le 2024-11-20
Parcourir:524

parseInt() vs. Number(): How Do They Differ in String-to-Number Conversion?

Comprendre les nuances de parseInt() et Number() dans la conversion de chaîne en nombre

Lorsqu'il s'agit de chaîne en nombre conversion en JavaScript, il est essentiel de comprendre les différences entre parseInt() et Number(). Ces deux méthodes présentent des comportements distincts dans la gestion des entrées de chaîne.

Différences sémantiques : analyse et conversion de type

parseInt() effectue une analyse, ce qui signifie qu'elle interprète une partie de la chaîne sous forme de nombre, tout en ignorant les caractères de fin qui ne correspondent pas au système numérique désigné. Number(), quant à lui, effectue une conversion de type, en essayant de convertir la chaîne entière en une valeur numérique.

Exemples :

// Parsing
parseInt("20px");       // 20
parseInt("10100", 2);   // 20
parseInt("2e1");        // 2

// Type conversion
Number("20px");       // NaN
Number("2e1");        // 20 (exponential notation)

Caractères de fin et octaux implicites

parseInt() ne tient pas compte des caractères de fin qui ne correspondent pas aux chiffres numériques dans la base spécifiée. Le constructeur Number(), cependant, ne détecte pas les octaux implicites (nombres préfixés par un 0, représentant un système numérique octal). La notation octale explicite (0o) est reconnue par Number().

// Implicit octal detection
Number("010");         // 10
Number("0o10")         // 8

// Parsed as octal by default
parseInt("010");       // 8
parseInt("010", 10);   // 10 (force decimal radix)

Notation hexadécimale et opérateur unaire Plus

ParseInt() et Number() peuvent gérer la notation hexadécimale, les nombres étant représentés par un préfixe Préfixe 0x. De plus, l'opérateur Unary Plus ( ) peut également être utilisé pour effectuer une conversion de type numérique, ce qui équivaut à l'utilisation du constructeur Number().

// Hexadecimal notation
Number("0xF");   // 15
parseInt("0xF"); //15

// Unary Plus Operator
 "2e1";   // 20
 "0xF";   // 15
 "010";   // 10

En comprenant les caractéristiques spécifiques de parseInt() et Number(), les développeurs peuvent prendre des décisions éclairées lors de la conversion de chaînes en nombres en JavaScript, garantissant ainsi des résultats précis et fiables.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3