2014-03-03 4 views
1

parseInt 함수가 있습니다. IE에서IE와 크롬에서 parseInt가 다르게 동작합니다.

출력 : 크롬 8 출력 파이어 : 입력으로 010

10

입력으로 099 대 크롬 및 파이어 0 출력 : IE에서

출력 : 99

누군가가 브라우저에서이 다른 동작을 이해하는 데 도움이 될 수 있습니까? 문제는 IE에서 발생하며 크롬과 파이어 폭스에서 예상대로 작동합니다.

미리 감사드립니다.

+0

요청했을 때 제안 사항이 없습니다. http://stackoverflow.com/search?q=parseint+leading+0 – mplungjan

답변

3

실제로 나는 IE가 정확하게 일을하고 있다고 주장 할 것입니다. * 여기에 있습니다. 0으로 시작하는 문자열의 경우 parseInt8 진수 입력으로 처리됩니다.

"제대로"이 경우
num = parseInt(str, 10); 

* 정말 "전통적으로"의미 : -

이 문제를 해결베이스를 지정하려면 ( 10이 경우, 당신은 소수합니다). 사양이 실제로 변경되었습니다. Technically, a string starting with 0 can be treated as either octal OR decimal, depending on the implementor's whim, where decimal is now preferred :

기수가 undefined 0 (결석) 인 경우

, 자바 스크립트는 다음과 같은 가정 : 입력 string가 "0"로 시작

  • 경우, 기수가 여덟 (진수) 또는 10 (소수). 정확히 기수가 선택되는 것은 구현에 의존합니다. ECMAScript 5는 10 (십진수)을 사용하도록 지정하지만 모든 브라우저가이를 지원하지는 않습니다. 이러한 이유로 은 parseInt을 사용할 때 항상 기수를 지정합니다.
+0

감사합니다, 잘 작동합니다. – user3373868

관련 문제