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.
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