함수가 자체적으로 실행되어야 하는 경우가 종종 있지만 안타깝게도 이 작성 방식은 잘못되었습니다.
function(){alert(1);}()
이유는 "function(){alert(1)의 전반부 );}"는 A 함수 표현식이 아닌 함수 선언으로 간주되어 다음 "();"이 분리되어 구문 오류가 발생합니다.
위 분석에 따르면 이 코드에는 문법 오류가 없지만 이 함수가 자체적으로 실행되지 않기 때문에 기대에 미치지 못합니다.
function(){alert(1); }(1 );
요약하자면, 코드가 함수 선언문이 아닌 함수 표현식을 설명한다는 점을 어떻게 명확하게 하는가가 핵심입니다.
글을 쓰는 올바른 방법에는 여러 가지가 있으며 각 방법에는 장단점이 있습니다.
방법 1: 괄호를 먼저 추가하고 마지막에 괄호를 추가합니다. >코드 복사
예를 들어 구문 강조 일치 기능이 있는 편집기에서 커서가 첫 번째 왼쪽 괄호 뒤에 있으면 마지막 오른쪽 괄호도 강조 표시되어 코드를 보는 사람들이 한눈에 전체를 볼 수 있습니다.
그러나 코드를 작성할 때 줄 뒤에 세미콜론을 추가하는 것을 좋아하지 않는 일부 학생에게는 몇 가지 함정이 있습니다. 예를 들어 다음 코드는 실행 오류를 보고합니다.
코드 복사
코드 복사
코드는 다음과 같습니다.
코드 복사
코드는 다음과 같습니다.
"void"를 추가하려면 5번의 키 입력이 필요하지만, "!"를 추가하는 것보다 논리 연산이 한 번 덜 필요하다는 장점이 있다고 들었습니다. ----방금 들었는데 왜인지는 모르겠습니다.
마지막으로 저는 개인적으로 jslint 작성에 권장되는 방법 1을 강력히 지지합니다.
코드 복사
코드는 다음과 같습니다.
(function(){alert(1);}())