문자열-숫자 변환에서 parseInt() 및 Number()의 미묘한 차이 이해
문자열-숫자 처리 시 JavaScript에서 변환을 수행하려면parseInt()와 Number()의 차이점을 파악하는 것이 중요합니다. 이 두 메서드는 문자열 입력을 처리할 때 서로 다른 동작을 나타냅니다.
의미적 차이: 구문 분석과 유형 변환
parseInt()는 구문 분석을 수행합니다. 즉, 구문 분석을 수행합니다. 지정된 숫자 체계에 맞지 않는 후행 문자는 무시하면서 문자열을 숫자로 표시합니다. 반면에 Number()는 유형 변환을 수행하여 전체 문자열을 숫자 값으로 변환하려고 시도합니다.
예:
// Parsing parseInt("20px"); // 20 parseInt("10100", 2); // 20 parseInt("2e1"); // 2 // Type conversion Number("20px"); // NaN Number("2e1"); // 20 (exponential notation)
후행 문자 및 암시적 8진수
parseInt()는 지정된 기수의 숫자에 해당하지 않는 후행 문자를 무시합니다. 그러나 Number() 생성자는 암시적 8진수(8진수 시스템을 나타내는 0 접두사가 붙은 숫자)를 감지하지 않습니다. 명시적 8진수 표기(0o)는 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)
16진수 표기법 및 단항 더하기 연산자
parseInt() 및 Number()는 모두 16진수 표기법을 처리할 수 있으며, 숫자는 선행 문자로 표시됩니다. 0x 접두사. 또한 단항 플러스 연산자( )를 사용하여 Number() 생성자를 사용하는 것과 동일하게 숫자 유형 변환을 수행할 수도 있습니다.
// Hexadecimal notation Number("0xF"); // 15 parseInt("0xF"); //15 // Unary Plus Operator "2e1"; // 20 "0xF"; // 15 "010"; // 10
parseInt() 및 Number()의 특정 특성을 이해함으로써 개발자는 JavaScript에서 문자열을 숫자로 변환할 때 정보에 기초한 결정을 내릴 수 있으므로 정확하고 신뢰할 수 있는 결과를 보장할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3