Die Nuancen von parseInt() und Number() bei der String-zu-Zahlen-Konvertierung verstehen
Beim Umgang mit String-zu-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 eine Analyse 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)
Nachgestellte Zeichen und implizite Oktale
parseInt() ignoriert nachgestellte Zeichen, die keinen numerischen Ziffern in der angegebenen Basis entsprechen. 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 hexadezimale Notation verarbeiten, Zahlen werden mit einem führenden Wert dargestellt 0x-Präfix. 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() können Entwickler fundierte Entscheidungen bei der Konvertierung von Zeichenfolgen in Zahlen in JavaScript treffen und so genaue und zuverlässige Ergebnisse gewährleisten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3