JavaScript에서 다음을 실행하십시오.
parseInt('01'); //equals 1
parseInt('02'); //equals 2
parseInt('03'); //equals 3
parseInt('04'); //equals 4
parseInt('05'); //equals 5
parseInt('06'); //equals 6
parseInt('07'); //equals 7
parseInt('08'); //equals 0 !!
parseInt('09'); //equals 0 !!
난 그냥 자바 스크립트가 앞에 0이 표시 생각하는 것을 어렵게 배운 진수 정수를 , 더 있기 때문에 "8"
또는 "9"
기본-8, 함수는 0을 반환하지합니다. 좋든 싫든, 이것은 의도적으로 설계된 것 입니다.
해결 방법은 무엇입니까?
참고 : 완전성을 위해 솔루션을 게시하려고하지만 싫어하는 솔루션이므로 다른 답변을 게시하십시오.
최신 정보:
자바 스크립트 표준 5 판 ( ECMA-262 )에는이 동작을 제거하는 주요 변경 사항이 도입되었습니다. 모질라는 글을 잘 쓴다 .
10
구문 분석 할 숫자 앞에라는 접두사가 붙지 않는 한 기본 매개 변수의 기본값은 10 진수입니다 0x
(예 : 0xFF
기본 매개 변수의 기본값은 16 임). 먼 기억 일 것입니다.
+'08' === 8
? 진실! 어쩌면 parseInt
실제 코드 가 필요할 수도 있지만 위의 코드는 필요 하지 않습니다.
Number('08')
0
또는 undefined
문자열의 숫자는 또는 0
뒤에 오는 숫자가 아닌 숫자로 시작하며 , 구현은 임의로 재량에 따라 숫자를 8 진수 또는 10 진수로 해석 할 수 있습니다. 이 경우 숫자를 10 진수로 해석하도록 권장됩니다. "x
X
( 나의 강조점)