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 . // 점 앞뒤에 공백이 있습니다
1 . toString(); // 점 앞뒤에 공백이 있습니다
1 .toString() // 점 앞에 탭이 있습니다
1 . toString(); / / 마침표 앞뒤에 탭이 있습니다
JS 엔진은 공백뿐만 아니라 탭도 무시합니다.