>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 `parseInt()`가 앞에 0이 포함된 예기치 않은 결과를 반환하는 이유는 무엇입니까?

JavaScript의 `parseInt()`가 앞에 0이 포함된 예기치 않은 결과를 반환하는 이유는 무엇입니까?

DDD
DDD원래의
2024-12-12 18:26:13213검색

Why Does `parseInt()` in JavaScript Return Unexpected Results with Leading Zeros?

JavaScript의 8진 위험:parseInt()의 미스터리 풀기

JavaScript 영역에서 개발자는 작업할 때 종종 당황스러운 동작에 직면합니다. ParseInt() 함수를 사용합니다. 이 문제는 함수가 숫자 문자열의 선행 0을 8진수(8진법) 정수의 표시기로 해석하는 데서 발생합니다.

코드 조각에서 설명한 것처럼,parseInt(를 사용하여 "01"부터 "07"까지 구문 분석을 시도합니다. )는 예상된 결과(1~7)를 생성하지만 그 이상의 값(예: "08" 및 "09")은 0을 반환합니다. 이는 JavaScript가 선행 0을 숫자 8과 9가 없는 8진수 변환에 대한 지시어로 해석하기 때문입니다.

이 JavaScript 문제를 우회하기 위해 사용할 수 있는 몇 가지 해결 방법이 있습니다. 가장 간단한 해결 방법은 parsInt() 함수에 대한 기본(기수)을 명시적으로 지정하는 것입니다. 예를 들어, parseInt('08', 10)은 "08"을 10진수 정수로 올바르게 해석하여 예상 결과 8을 반환합니다.

JavaScript에서 8진수 문제를 처리하는 또 다른 대안은 Number()를 사용하는 것입니다. 건설자. 앞에 0이 있는 숫자 문자열에 적용하면 Number()는 명시적인 기수 지정 없이 이를 10진수 값으로 처리합니다. 예를 들어, Number('08')도 8이라는 올바른 결과를 산출합니다.

parseInt()의 8진수 동작을 해결하는 방법은 여러 가지가 있지만 피하려면 이러한 잠재적인 함정을 인식하는 것이 중요합니다. JavaScript 코드에 예상치 못한 결과가 발생했습니다. 이러한 해결 방법을 활용함으로써 개발자는 8진수 변환의 위험 없이 숫자 문자열을 자신있게 구문 분석할 수 있습니다.

위 내용은 JavaScript의 `parseInt()`가 앞에 0이 포함된 예기치 않은 결과를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.