JavaScript의 8진수 함정 및 실용적인 해결 방법
JavaScript에서 정수 구문 분석을 처리할 때 선행 0이 발생할 때의 특이한 동작을 인식하는 것이 중요합니다. . JavaScript는 이를 8진수 정수로 해석하므로 예상치 못한 결과가 발생합니다.
예를 들어 '08'과 '09'를 구문 분석하면 base-8에 존재하지 않기 때문에 0이 반환됩니다. 이 함정을 피하기 위해 다음과 같은 몇 가지 해결 방법이 있습니다.
1. 명시적 기수 사양:
기수(기수)를 명시적으로 지정하면 parseInt가 선행 0을 십진수로 처리하도록 지시합니다.
parseInt('08', 10); // 8 parseInt('09', 10); // 9
2. Number 객체:
Number 객체는parseInt에 대한 보다 간단한 대안을 제공합니다. 입력을 자동으로 십진 정수로 변환합니다.
Number('08'); // 8 Number('09'); // 9
추가 참고:
JavaScript 표준(ECMA-262) 버전 5에는 다음을 제거하는 획기적인 변경이 도입되었습니다. 이 8진수 동작. 그러나 이 변경 사항은 브라우저, 특히 이전 버전에서 보편적으로 지원되지 않는다는 점에 유의하는 것이 중요합니다. 따라서 브라우저 간 호환성을 위해 위의 해결 방법을 구현하는 것이 좋습니다.
위 내용은 JavaScript의 예기치 않은 8진 정수 구문 분석을 어떻게 방지할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!