>  기사  >  웹 프론트엔드  >  JavaScript가 앞에 0이 있는 숫자를 8진수로 처리하는 이유는 무엇입니까?

JavaScript가 앞에 0이 있는 숫자를 8진수로 처리하는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-01 10:22:30249검색

Why Does JavaScript Treat Numbers With Leading Zeroes as Octal?

JavaScript 숫자 리터럴의 선행 0: 8진수 변환 이해

JavaScript는 선행 0이 있는 숫자 리터럴을 만나면 이를 다음과 같이 해석합니다. 역사적인 이유로 인해 8진수(8진법) 숫자가 사용되었습니다. ECMAScript 3에서는 선행 0이 확장으로 허용되어 개발자가 코드에 8진수를 지정할 수 있었습니다. 그러나 이 방식은 표준화되지 않았으며 특히 엄격 모드에서 혼란을 야기했습니다.

ECMAScript 5에서는 선행 0을 사용하여 8진수를 나타내는 것이 완전히 지원되지 않습니다. 잠재적인 오류를 방지하려면 개발자는 숫자 리터럴에서 선행 0을 제거하거나 다음 접두사를 사용하여 베이스를 명시적으로 지정하는 것이 좋습니다.

  • BinaryIntegerLiteral: 0b(예: 0b1010)
  • OctalIntegerLiteral: 0o(예: 0o10)
  • HexIntegerLiteral: 0x(예: 0x10)

코드에서 앞에 0이 붙는 정수 리터럴인 경우 JavaScript 엔진에서 이를 어떻게 해석하는지 이해하는 것이 중요합니다. 10진수인 경우 앞에 오는 0이 제거되었는지 확인하세요.

JavaScript가 숫자 리터럴을 8진수로 해석하지 못하도록 하려면 다음 기술 중 하나를 사용하세요.

  1. 선행 0 제거: 숫자 리터럴에서 선행 0을 제거합니다.
  2. 기본 10과 함께parseInt 사용: 소수를 적용하려면parseInt를 사용하고 밑을 10으로 지정합니다. 해석. 예:parseInt('010', 10);
  3. 명시적 기본 접두사 사용: 적절한 접두사(예: 8진수는 0o, 2진수는 0b)를 사용하여 숫자 리터럴.

위 내용은 JavaScript가 앞에 0이 있는 숫자를 8진수로 처리하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.