parseInt 함수가 있습니다. IE에서IE와 크롬에서 parseInt가 다르게 동작합니다.
출력 : 크롬 8 출력 파이어 : 입력으로 010
10
입력으로 099 대 크롬 및 파이어 0 출력 : IE에서
출력 : 99
누군가가 브라우저에서이 다른 동작을 이해하는 데 도움이 될 수 있습니까? 문제는 IE에서 발생하며 크롬과 파이어 폭스에서 예상대로 작동합니다.
미리 감사드립니다.
parseInt 함수가 있습니다. IE에서IE와 크롬에서 parseInt가 다르게 동작합니다.
출력 : 크롬 8 출력 파이어 : 입력으로 010
10
입력으로 099 대 크롬 및 파이어 0 출력 : IE에서
출력 : 99
누군가가 브라우저에서이 다른 동작을 이해하는 데 도움이 될 수 있습니까? 문제는 IE에서 발생하며 크롬과 파이어 폭스에서 예상대로 작동합니다.
미리 감사드립니다.
실제로 나는 IE가 정확하게 일을하고 있다고 주장 할 것입니다. * 여기에 있습니다. 0
으로 시작하는 문자열의 경우 parseInt
은 8 진수 입력으로 처리됩니다.
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을 사용할 때 항상 기수를 지정합니다.
감사합니다, 잘 작동합니다. – user3373868
요청했을 때 제안 사항이 없습니다. http://stackoverflow.com/search?q=parseint+leading+0 – mplungjan