점 "."은 JavaScript에서 두 가지 의미를 갖습니다.
의미 1. 2.5와 같이 산술에서 소수점(부동 소수점 수)을 나타냅니다.
의미론 2. [].push(2)와 같은 객체 속성과 메소드를 가져옵니다.
이해하기 어려운 부분은 거의 없는데, 다음 질문이 흥미롭습니다.
다음과 같이 코드 코드를 복사합니다.
// 이 코드 줄은 어떻게 실행되나요?
1.toString();
Firebug에서는 다음과 같이
여기서 점은 위에서 언급한 의미 1을 표현하므로 점 뒤에 숫자가 와야 합니다. 여기서 다음은 toString이고 보고 구문이 잘못되었습니다.
해결책은 괄호를 추가하는 등 매우 간단합니다.
다음과 같이 코드 코드를 복사합니다.
(1).toString();
이렇게 쓸 수도 있지만 이해하기가 더 어렵습니다.
다음과 같이 코드 코드를 복사합니다.
1..toString();
브라우저에서 실행될 수 있는 이유는 각 브라우저 JS 엔진이 "1..toString()"을 "1.0.toString()"으로 이해하기 때문입니다. 여기서 첫 번째 점은 의미 1이고 두 번째 점은 의미 2입니다.
더 이상한 작성 방법이 있지만 오류는 보고되지 않습니다.
다음과 같이 코드 코드를 복사합니다.
1.toString(); // 마침표 앞에 공백이 있습니다.
분명히 여기서 점은 의미 2입니다. 즉, JS 엔진은 점 연산자 앞의 공백을 무시합니다. 실제로 점 연산자 앞이나 뒤의 공백은 무시됩니다. 다음과 같이
다음과 같이 코드 코드를 복사합니다.
1. toString(); // 마침표 앞뒤에 공백이 있습니다.
1. toString(); // 마침표 앞뒤에 공백이 2개 있습니다.
1.toString(); // 마침표 앞에 탭이 있습니다.
1. toString(); // 점 앞뒤에 탭이 있습니다.
JS 엔진은 공백뿐만 아니라 탭도 무시합니다.