저는 유명한 질문과 답변 웹사이트인 stackoverflow에서 이 질문을 보았습니다.
이전에 JavaScript에 대한 질문을 본 적이 있지만 깊이 이해하지는 못했습니다. 오늘 StackOverflow에서 답변을 보고 기분 좋게 적어서 모두와 공유했습니다.
문제 설명은 이렇습니다:
console.log(10..toString());//10
console.log(10.toString());//SyntaxError: 예기치 않은 토큰 ILLEGAL
전자는 정상적으로 작동하는데 후자는 오류가 발생하는 이유는 무엇인가요?
이유는 JavaScript에서 숫자 뒤의 "." 연산자의 의미가 불확실하기 때문입니다. 부동 소수점 숫자의 기호일 수도 있고, 객체의 속성을 취하는 연산자일 수도 있기 때문입니다. 하지만 자바스크립트 인터프리터는 이를 부동 소수점 숫자의 기호로 취급하므로 위 코드는 다음
코드 복사와 동일합니다. 코드는 다음과 같습니다:
console.log((10.).toString());//Normal
console.log((10.)toString());//In 이 경우는 당연히 오류가 보고되었습니다(종료) ^_^