> 웹 프론트엔드 > JS 튜토리얼 > parsInt() 대 Number(): 문자열-숫자 변환에서 어떻게 다릅니까?

parsInt() 대 Number(): 문자열-숫자 변환에서 어떻게 다릅니까?

Patricia Arquette
풀어 주다: 2024-11-19 08:47:03
원래의
903명이 탐색했습니다.

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

문자열-숫자 변환에서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에서 문자열을 숫자로 변환할 때 정보를 바탕으로 결정을 내릴 수 있으므로 정확하고 신뢰할 수 있는 결과를 얻을 수 있습니다.

위 내용은 parsInt() 대 Number(): 문자열-숫자 변환에서 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿