Maison  >  Article  >  interface Web  >  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 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-19 08:47:03849parcourir

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

Comprendre les nuances de parseInt() et Number() dans la conversion 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() ignore les caractères de fin qui ne correspondent pas en 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 Notation hexadécimale, nombres représentés par un préfixe 0x en tête. 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.

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