JavaScript의 세미콜론은 문의 끝을 나타내지만 JavaScript에는 자동 세미콜론 삽입 규칙이 있기 때문에 매우 쉽게 흐려질 수 있습니다. 일반적인 상황에서는 개행 문자가 세미콜론을 생성하지만 실제 상황은 그렇지 않습니다. 즉, JavaScript에서 줄이 바뀔 때 세미콜론이 생성될 수도 있고 생성되지 않을 수도 있습니다. 세미콜론이 자동으로 삽입되는지 여부는 주로 위쪽 줄과 아래쪽 줄에 따라 다릅니다. 그래서 숙련된 프로그래머라도 가끔 머리가 아플 때가 있습니다.
ECMAScript 의 자동 세미콜론 삽입 규칙에 대한 해당 설명도 있습니다: 빈 문, 변수 문, 표현식 문, do-while 문, continue 문, break 문, return 문 및 이러한 특정 ECMAScript 문은 The로 구분되어야 합니다. 번호가 끝납니다. 이러한 세미콜론은 항상 소스 코드 텍스트에 명시적으로 나타날 수 있습니다. 편의상 소스 코드 텍스트에서 이러한 세미콜론은 경우에 따라 생략될 수 있습니다. 즉, 이러한 명령문 끝에 하드 세미콜론을 입력할 필요가 없으며 JavaScript가 자동으로 명령문 끝에 이를 삽입합니다.
자세한 ECMAScript 세미콜론 자동 삽입 규칙을 알고 싶다면 다음 링크를 참조하세요.
연습을 통해 진실을 알아보세요. 다음 예를 살펴보면 세미콜론 자동 삽입이 그리 어렵지 않다는 것을 알게 될 것입니다. 조금만 부주의하면 두통이 생길 수 있습니다.
반품으로 인한 살인
인용된 내용은 다음과 같습니다. 함수 테스트(){ |
a+b 값을 반환하는 함수는 얼핏 괜찮아 보이지만, Alert를 실행한 결과는 정의되지 않습니다. 세미콜론 자동 삽입 규칙에 따라 return 문 뒤에 줄 바꿈이 있으면 자동으로 세미콜론이 삽입되며, 반환 값이 없으면 이해하기 쉽습니다. 줄을 마무리해야 하는 경우 다음과 같이 할 수 있습니다.
인용된 내용은 다음과 같습니다. 함수 테스트(){ (기능 (){ |
for 문 헤더에 있는 두 개의 세미콜론은 자동으로 삽입되지 않습니다.
인용된 내용은 다음과 같습니다. for( var a=1,b=10 // 세미콜론은 자동으로 삽입되지 않습니다. |
ECMAScript에는 위에 대한 설명도 있습니다. 세미콜론을 빈 명령문으로 해석하고 for 명령문의 ()에 세미콜론을 자동으로 삽입하지 않는 것은 특별한 경우이며 자동 삽입 규칙의 적용을 받지 않습니다.
JavaScript는 약한 유형의 언어이지만 ECMAScript의 자동 세미콜론 삽입 규칙을 완전히 이해하기는 어렵습니다. 그러나 좋은 코드 작성 습관을 기르고 수동으로 세미콜론을 삽입하고 습관을 형성하면 이러한 문제를 피할 수 있으며 동시에 프로그램 디버깅 및 코드 읽기에 있어서 자신과 다른 사람들에게 큰 도움이 될 것입니다.
동시에 ECMAScript는 프로그래머에게 다음과 같은 조언도 제공합니다.
++ 또는 —는 피연산자와 같은 줄에 나타나야 합니다.
return 또는 throw 문의 표현식은 return 또는 throw와 같은 줄에 나타나야 합니다.
break 또는 continue 문의 레이블은 break 또는 continue와 같은 줄에 나타나야 합니다.