"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > parseInt() vs. Number(): ¿En qué se diferencian en la conversión de cadena a número?

parseInt() vs. Number(): ¿En qué se diferencian en la conversión de cadena a número?

Publicado el 2024-11-20
Navegar:557

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

Comprender los matices de parseInt() y Number() en la conversión de cadena a número

Cuando se trata de cadena a número conversión en JavaScript, es esencial comprender las diferencias entre parseInt() y Number(). Estos dos métodos exhiben comportamientos distintos en el manejo de entradas de cadenas.

Diferencias semánticas: análisis frente a conversión de tipos

parseInt() realiza análisis, lo que significa que interpreta una parte de la cadena como un número, ignorando los caracteres finales que no se ajusten al sistema numérico designado. Number(), por otro lado, realiza la conversión de tipos, intentando convertir la cadena completa en un valor numérico.

Ejemplos:

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

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

Caracteres finales y octales implícitos

parseInt() ignora los caracteres finales que no corresponden a dígitos numéricos en la base especificada. El constructor Number(), sin embargo, no detecta octales implícitos (números con el prefijo 0, que representan un sistema de numeración octal). La notación octal explícita (0o) es reconocida por 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)

Notación hexadecimal y operador unario más

Tanto parseInt() como Number() pueden manejar notación hexadecimal, los números se representan con un punto inicial Prefijo 0x. Además, el operador Unario Plus ( ) también se puede utilizar para realizar una conversión de tipo numérico, equivalente a utilizar el constructor Number().

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

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

Al comprender las características específicas de parseInt() y Number(), los desarrolladores pueden tomar decisiones informadas al convertir cadenas en números en JavaScript, lo que garantiza resultados precisos y confiables.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3