Development Tip

00.0으로 인해 구문 오류가 발생하는 이유는 무엇입니까?

yourdevel 2020. 10. 24. 11:57
반응형

00.0으로 인해 구문 오류가 발생하는 이유는 무엇입니까?


이상 해요. 이것은 Chrome의 JavaScript 콘솔 (버전 42.0.2311.135, 64 비트)에서 발생합니다.

> 0
< 0
> 00
< 0
> 0.0
< 0
> 00.0
X Uncaught > SyntaxError: Unexpected number

Firefox 37.0.2는 오류 메시지가 다음과 같지만 동일합니다.

SyntaxError: missing ; before statement

JavaScript가 숫자를 구문 분석하는 방법에 대한 기술적 설명이있을 수 있으며 콘솔 프롬프트에서 땜질 할 때만 발생할 수 있지만 여전히 잘못된 것 같습니다.

왜 그럴까요?


표현식 0.0과는 00.0다르게 구문 분석됩니다.

  • 0.0숫자 리터럴 1 로 구문 분석됩니다.
  • 00.0 다음과 같이 구문 분석됩니다.
    • 00– 8 진수 리터럴 2
    • . – 속성 접근 자
    • 0 – 식별자 이름

0유효한 JavaScript 식별자가 아니기 때문에 코드에서 구문 오류가 발생 합니다. 다음 예제 toString는 유효한 식별자 이므로 작동 합니다.

00.toString

1 섹션 7.8.3 – 선행 0 뒤에 소수점 구분 기호 또는 ExponentPart
2 섹션 B.1.1 – 선행 0 뒤에 OctalDigits 수 있습니다.


008 진수 .0로 평가되고 해당 숫자의 속성에 액세스하는 것으로 평가됩니다. 그러나 정수는 속성 접근 자로 사용할 수 없기 때문에 오류가 발생합니다.

다른 개체에 대해서도 동일한 오류가 발생합니다.

'string'.0 // Syntax error: unexpected number
({}).0 // Syntax error: unexpected number

MDN에서 속성 접근 자에 대한 관련 정보를 찾을 수 있습니다 .

참고 URL : https://stackoverflow.com/questions/30368910/why-does-00-0-cause-a-syntax-error

반응형