Heim  >  Artikel  >  Web-Frontend  >  parseInt() vs. Number(): Wie unterscheiden sie sich bei der Konvertierung von Zeichenfolgen in Zahlen?

parseInt() vs. Number(): Wie unterscheiden sie sich bei der Konvertierung von Zeichenfolgen in Zahlen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-19 08:47:03849Durchsuche

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

Verstehen der Nuancen von parseInt() und Number() bei der Konvertierung von Zeichenfolgen in Zahlen

Beim Umgang mit Zeichenfolgen in Zahlen Bei der Konvertierung in JavaScript ist es wichtig, die Unterschiede zwischen parseInt() und Number() zu verstehen. Diese beiden Methoden zeigen unterschiedliche Verhaltensweisen bei der Verarbeitung von Zeichenfolgeneingaben.

Semantische Unterschiede: Parsing vs. Typkonvertierung

parseInt() führt das Parsen durch, was bedeutet, dass es einen Teil davon interpretiert die Zeichenfolge als Zahl, wobei alle nachfolgenden Zeichen ignoriert werden, die nicht in das angegebene Zahlensystem passen. Number() hingegen führt eine Typkonvertierung durch und versucht, die gesamte Zeichenfolge in einen numerischen Wert umzuwandeln.

Beispiele:

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

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

Nachfolgende Zeichen und implizite Oktale

parseInt() ignoriert nachfolgende Zeichen, die dies nicht tun entsprechen numerischen Ziffern in der angegebenen Basis. Der Number()-Konstruktor erkennt jedoch keine impliziten Oktalzahlen (Zahlen mit vorangestellter 0, die ein oktales Zahlensystem darstellen). Explizite oktale Notation (0o) wird von Number() erkannt.

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

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

Hexadezimale Notation und unärer Plusoperator

Sowohl parseInt() als auch Number() können damit umgehen Hexadezimale Schreibweise, Zahlen werden mit einem führenden 0x-Präfix dargestellt. Darüber hinaus kann der Unary Plus Operator ( ) auch zur Durchführung einer numerischen Typkonvertierung verwendet werden, was der Verwendung des Number()-Konstruktors entspricht.

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

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

Durch das Verständnis der spezifischen Eigenschaften von parseInt() und Number() Entwickler können bei der Konvertierung von Zeichenfolgen in Zahlen in JavaScript fundierte Entscheidungen treffen und so genaue und zuverlässige Ergebnisse gewährleisten.

Das obige ist der detaillierte Inhalt vonparseInt() vs. Number(): Wie unterscheiden sie sich bei der Konvertierung von Zeichenfolgen in Zahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn