>  기사  >  웹 프론트엔드  >  함수를 분석하기 전에 연산자를 추가하면 함수가 즉시 실행됩니다.

함수를 분석하기 전에 연산자를 추가하면 함수가 즉시 실행됩니다.

高洛峰
高洛峰원래의
2017-03-12 13:09:141290검색

우리는 함수 가 일반적으로 FunctionName()

이라고 불리는 것을 알고 있지만, "함수 정의 " 끝에 ()를 추가하려고 하면, 파서는 이해할 수 없습니다.

function msg(){
  alert('message');
  }();//解析器是无法理解的

정의된 함수의 호출 메소드는 msg()이어야 합니다.

함수를 즉시 실행하고 싶다면 함수 본문을 ()로 감싸면 됩니다.

정의된 함수 본문을 괄호로 감싸면 파서가 함수 표현식 형식으로 정의된 함수를 호출하기 때문입니다. 즉, 함수를 함수 표현식으로 변환할 수 있는 모든 메서드를 사용하면 파서가 정의된 함수를 올바르게 호출할 수 있습니다. 다음과 같습니다:

// 这么写会报错,因为这是一个函数定义:
function() {}()

// 常见的(多了一对括号),调用匿名函数:
(function() {})()

// 但在前面加上一个布尔运算符(只多了一个感叹号),就是表达式了,将执行后面的代码,也就合法实现调用
!function() {}()

!는 연산자 중 하나일 뿐이며 + - || ~는 모두 이러한 기능을 가지고 있습니다.

!를 사용하는 것은 습관의 문제일 수 있습니다. 연산자마다 성능이 다를 수 있습니다.

이 효과는 일반적으로 사용되는 다음 두 가지 즉시 실행 방법과 동일합니다.

(function() {})();
  // or  
(function() {}());

읽어주셔서 감사합니다.

위 내용은 함수를 분석하기 전에 연산자를 추가하면 함수가 즉시 실행됩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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