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