JavaScript의 함수 선언 및 함수 표현

PHPz
풀어 주다: 2018-10-12 15:23:26
원래의
1373명이 탐색했습니다.

지금까지는 함수 선언과 함수 표현식을 구분하지 못했습니다. 실제로 파서는 실행 환경에 데이터를 로드할 때 함수 선언과 함수 표현식을 동일하게 처리하지 않습니다. 파서는 코드를 실행하기 전에 먼저 함수 선언을 읽고 이를 사용 가능(액세스 가능)하게 만듭니다. 함수 표현식의 경우 파서가 해당 코드 줄에 도달할 때까지 실제로 해석 및 실행되지 않습니다. 다음 예:

코드는 다음과 같습니다.

alert(sum(10,10));
function sum(num1,num2)
{
    return num1+num2;
}
로그인 후 복사

위 코드는 코드가 시작되기 전에 올바르게 실행될 수 있습니다. 실행 시, 파서 함수 선언이 읽혀지고 함수 선언 호이스팅이라는 프로세스를 통해 실행 환경에 추가됩니다. 코드를 평가할 때 JavaScript 엔진은 첫 번째 단계에서 함수를 선언하고 이를 소스 트리 상단에 배치합니다. 따라서 함수를 선언하는 코드가 함수를 호출하는 코드 뒤에 있더라도 JavaScript 엔진은 함수 선언을 맨 위로 끌어올릴 수 있습니다. 다음 예와 같이 위의 함수 선언을 동등한 함수 표현식으로 변경하면 실행 중에 오류가 발생합니다.

코드는 다음과 같습니다.

alert(sum(10,10));
var sum=function(num1,num2)
{
    return num1+num2;
};
로그인 후 복사

위 코드는 해당 함수가 위치해 있기 때문에 실행 시 오류가 발생합니다. 함수 선언이 아닌 초기화 문에서. 즉, 변수 sum은 함수가 실행될 때까지 함수에 대한 참조를 보유하지 않습니다. 더욱이 코드의 첫 번째 줄은 "예기치 않은 식별자" 오류를 일으키기 때문에 실제로는 실행되지 않습니다. 다음 줄.

선언 시 변수를 통해 함수에 접근할 수 있다는 점을 제외하면 함수 선언 구문과 함수 표현식 구문은 실제로 동일합니다. . 의.

참고: var sum=function sum(){}과 같이 함수 선언과 함수 표현식을 동시에 호출할 수도 있습니다. 그러나 이 구문은 Safari에서 오류를 발생시킵니다.

이상 내용이 이 글의 전체 내용입니다. 자바스크립트를 공부하시는 모든 분들께 도움이 되었으면 좋겠습니다.

더 많은 관련 튜토리얼을 보려면 자바스크립트 튜토리얼

을 방문하세요.
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿