>  기사  >  웹 프론트엔드  >  js 자체 실행 함수를 작성하는 여러 가지 방법 비교_javascript 기술

js 자체 실행 함수를 작성하는 여러 가지 방법 비교_javascript 기술

WBOY
WBOY원래의
2016-05-16 17:50:441156검색

함수가 자체적으로 실행되어야 하는 경우가 종종 있지만 안타깝게도 이 작성 방식은 잘못되었습니다.

코드 복사 코드는 다음과 같습니다.

function(){alert(1);}()

이유는 "function(){alert(1)의 전반부 );}"는 A 함수 표현식이 아닌 함수 선언으로 간주되어 다음 "();"이 분리되어 구문 오류가 발생합니다.

위 분석에 따르면 이 코드에는 문법 오류가 없지만 이 함수가 자체적으로 실행되지 않기 때문에 기대에 미치지 못합니다.
코드 복사 코드는 다음과 같습니다.

function(){alert(1); }(1 );

요약하자면, 코드가 함수 선언문이 아닌 함수 표현식을 설명한다는 점을 어떻게 명확하게 하는가가 핵심입니다.
글을 쓰는 올바른 방법에는 여러 가지가 있으며 각 방법에는 장단점이 있습니다.

방법 1: 괄호를 먼저 추가하고 마지막에 괄호를 추가합니다. >코드 복사

코드는 다음과 같습니다. (function(){alert(1);}()) 이것은 jslint에서 권장하는 작성 방법입니다. 코드를 읽는 사람들에게 이 코드가 전체임을 상기시켜준다는 장점이 있습니다.
예를 들어 구문 강조 일치 기능이 있는 편집기에서 커서가 첫 번째 왼쪽 괄호 뒤에 있으면 마지막 오른쪽 괄호도 강조 표시되어 코드를 보는 사람들이 한눈에 전체를 볼 수 있습니다.
그러나 코드를 작성할 때 줄 뒤에 세미콜론을 추가하는 것을 좋아하지 않는 일부 학생에게는 몇 가지 함정이 있습니다. 예를 들어 다음 코드는 실행 오류를 보고합니다.



코드 복사

코드는 다음과 같습니다. var a=1 (function(){alert(1);} ())) 방법 2: 함수 주위에 괄호 추가



코드 복사


코드는 다음과 같습니다.
(function(){alert(1);})(); 이 접근 방식은 코드 무결성이 하나 낮습니다. 방법 1보다 이점이 있습니다. 방법 3: 함수 앞에 연산자를 추가합니다. 일반적인 연산자는 ! 및 void입니다.


코드 복사


코드는 다음과 같습니다.
!function(){alert(1) ;}( ); void function(){alert(2);}(); 분명히 "!"와 같은 연산자를 추가하는 것이 가장 간단합니다. 쓰다.
"void"를 추가하려면 5번의 키 입력이 필요하지만, "!"를 추가하는 것보다 논리 연산이 한 번 덜 필요하다는 장점이 있다고 들었습니다. ----방금 들었는데 왜인지는 모르겠습니다.

마지막으로 저는 개인적으로 jslint 작성에 권장되는 방법 1을 강력히 지지합니다.



코드 복사


코드는 다음과 같습니다.
(function(){alert(1);}())
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.