JavaScript에서 앞에 0이 있는 숫자는 형식에 따라 다르게 해석됩니다.
역사적 진화
초기에는 JavaScript에서 선행 0이 8진수(기수 8)를 나타냈는데, 이는 16진수(기수 16)의 선행 0x와 유사합니다.
10, 012, 0xA // 均表示十进制数 10
그러나 ECMAScript 3에서는 이 8진수 표현이 선택적 확장으로 강등되었으며 10진수 정수 리터럴은 더 이상 앞에 0을 가질 수 없습니다(구현이 확장을 지원하지 않는 한).
ES5 이상의 엄격 모드
ES5의 엄격 모드에서는 앞에 0이 있는 십진수 리터럴이 더 이상 허용되지 않습니다.
0 // 无效 NonZeroDigit DecimalDigits(opt) // 有效
ES6 새로운 표현 도입
ES6에서는 선행 기호 0b와 8진수 리터럴을 도입합니다. 0o:
전통적인 8진 리터럴
하지만 더 이상 권장되지 않습니다. 선행 0이 있는 8진수 표현(예: 기존 8진수 리터럴)은 비엄격 모드에서도 계속 사용할 수 있습니다.
010 // 可能会被解释为 8 或 10,具体取决于实现
모범 사례
숫자가 항상 소수점으로 해석되므로 앞에 오는 0을 제거하거나 다음을 사용하는 것이 좋습니다. parseInt는 숫자를 구문 분석합니다:
parseInt('010', 8) // 返回 8 parseInt('010', 10) // 返回 10
위 내용은 JavaScript 숫자의 앞에 오는 0은 어떻게 해석됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!