10..toString ()은 작동하지만 10.toString ()은 작동하지 않는 이유는 무엇입니까?
중복 가능성 :
JavaScript에서 toString 사용
152..toString(2)
이진 문자열 "10011000"을 올바르게 생성하지만
152.toString(2)
예외를 던진다
"SyntaxError : 식별자가 숫자 리터럴 바로 뒤에서 시작됩니다."
왜? 후자의 구문은 실제로 더 정확하지만 전자는 매우 이상해 보입니다!
.숫자 후는 모호한 보일 수 있습니다. 십진수 또는 개체 멤버 연산자입니까?
그러나 인터프리터 는 10 진수 로 결정 하므로 멤버 연산자가 누락되었습니다.
다음과 같이 표시됩니다.
(10.)toString(); // invalid syntax
두 번째를 포함하면 .소수 뒤에 멤버 연산자가 있습니다.
(10.).toString();
@pedants 및 downvoters
. 문자 제시 모호성을 . 배치에 따라 멤버 연산자 또는 소수로 이해 될 수 있습니다. 모호함이 없다면 물어볼 질문이 없을 것입니다.
.특정 위치 의 문자에 대한 사양의 해석은 십진수가 될 것이라는 것입니다. 이것은 ECMAScript의 숫자 리터럴 구문에 의해 정의됩니다.
사양이 JS 인터프리터의 모호성을 해결한다고해서 .캐릭터 의 모호성 이 전혀 존재 하지 않는다는 의미 는 아닙니다.
렉서 (일명 "토케 나이저")는 새 토큰을 읽을 때 처음 숫자를 찾을 때 합법적 인 숫자의 일부 가 아닌 문자를 볼 때까지 문자 (즉, 숫자 또는 점 하나 ) 를 계속 소비합니다 .
<152.>은 합법적 인 토큰이지만 (뒤에 0이 필요하지 않음) 그렇지 <152..>않으므로 첫 번째 예제는 다음 토큰 시리즈로 축소됩니다.
<152.> <.> <toString> <(> <2> <)>
이는 합법적이며 예상되는 시퀀스이지만 두 번째는 다음과 같습니다.
<152.> <toString> <(> <2> <)>
이것은 불법 toString입니다. 전화 에서 번호를 구분하는 마침표 토큰이 없습니다 .
10.A는 float number당신은에 toString을 사용할 수 있습니다float
예.
parseFloat("10").toString() // "10"
참고 URL : https://stackoverflow.com/questions/13149282/why-does-10-tostring-work-but-10-tostring-does-not
'Nice programing' 카테고리의 다른 글
| xcode 4에 내 코드 조각을 추가 할 수 있습니까? (0) | 2020.11.09 |
|---|---|
| 정규식 아님 연산자 (0) | 2020.11.09 |
| 특정 whatsapp 연락처에 대한 웹 링크 (0) | 2020.11.09 |
| 타임 스탬프를 업데이트하지 않고 항목 업데이트 (0) | 2020.11.09 |
| 이름 <…>이 네임 스페이스 clr-namespace <…>에 없습니다. (0) | 2020.11.09 |