함수 선언
함수 할당식
명명된 함수의 할당식
함수는 JavaScript의 일급 객체이므로 다른 값처럼 전달될 수 있습니다. 일반적인 사용법은 익명 함수를 콜백 함수로 비동기 함수에 전달하는 것입니다.
함수 선언
function foo() {}
위 메서드는 실행 전에 파싱(호이스팅)되므로 현재 컨텍스트 내 어디에나 존재하며, 함수 정의 본문 위에서 호출하더라도 정확합니다. 의.
foo(); // 正常运行,因为foo在代码运行前已经被创建 function foo() {
함수 할당 표현식
var foo = function() {};
이 예에서는 foo 변수에 익명 함수를 할당합니다.
foo; // 'undefined' foo(); // 出错:TypeError var foo = function() {};
var는 선언문을 정의하므로 코드가 실행되기 전에 foo 변수가 구문 분석되므로 코드가 실행될 때 foo 변수가 이미 정의되어 있습니다.
그러나 대입문은 런타임에만 실행되므로 해당 코드가 실행되기 전에는 foo의 값이 기본적으로 정의되지 않습니다.
이름이 지정된 함수의 할당식
또 다른 특별한 경우는 이름이 지정된 함수를 변수에 할당하는 것입니다.
var foo = function bar() { bar(); // 正常运行 } bar(); // 出错:ReferenceError
bar는 foo에 함수를 할당했기 때문에 함수 선언 외부에서는 보이지 않습니다. 그러나 bar 내부에서는 여전히 보입니다. 이는 JavaScript의 명명 처리로 인해 발생합니다. 함수 이름은 항상 함수 내에서 표시됩니다.
참고: IE8 이하 브라우저에서는 브라우저가 명명된 함수 할당 표현식을 잘못 구문 분석하고 이를 foo와 bar의 두 함수로 구문 분석하기 때문에 bar가 외부에도 표시됩니다.
위 내용은 자바스크립트 고급 시리즈 - 함수 선언 및 표현식 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(m.sbmmt.com)를 참고해주세요!