캡슐화된 익명 함수의 구문
JavaScript에서 캡슐화된 익명 함수는 함수를 괄호로 묶고 즉시 실행하여 생성됩니다.
(function(){ // code here })();
이 구문은 전역 범위를 다음과 같이 복잡하게 만드는 것을 방지하는 데 사용됩니다. 변수 및 함수.
작동 이유: (function(){})();
함수 선언을 괄호로 묶으면 결과가 함수로 평가됩니다. 표현. 함수 표현식은 선택적 이름을 허용하므로 이 표현식은 이름 없이 실행될 수 있습니다.
작동하지 않는 이유: function(){}();
켜기 반면에 괄호가 없으면 JavaScript는 이를 함수 선언으로 구문 분석합니다. 함수 선언에는 이름 식별자가 필요하지만 이 경우에는 이것이 누락되었습니다.
함수 선언과 표현식
함수 표현식에는 이름이 지정되거나 지정되지 않을 수 있지만, 함수 선언에는 이름이 있어야 합니다.
괄호 및 컨텍스트
괄호는 다음을 나타냅니다. 동봉된 코드는 표현식입니다. 함수 선언인지 표현식인지는 상황에 따라 다릅니다. 함수 선언은 전역 범위나 다른 함수의 본문 내에 나타날 수 있지만 함수 표현식은 표현식에만 나타날 수 있습니다.
모호함의 예
0, function foo() {} // Function Expression function foo() {} // Function Declaration
이 예에서는 , 파서는 컨텍스트에 따라 함수 선언인지 표현식인지 결정합니다. 표현식은 표현식에 나타날 수 있지만 선언은 특정 위치에만 나타날 수 있습니다.
블록 내 함수를 피해야 하는 이유
블록 내부의 함수는 예기치 않은 동작을 초래할 수 있습니다. 변수 범위 문제로 인해. 예를 들면 다음과 같습니다.
if (true) { function foo() { alert('true'); } } else { function foo() { alert('false!'); } } foo(); // true? false? why?
위 내용은 JavaScript에서 괄호가 캡슐화된 익명 함수를 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!