지금까지는 함수 선언과 함수 표현식을 구분하지 못했습니다. 실제로 파서는 실행 환경에 데이터를 로드할 때 함수 선언과 함수 표현식을 동일하게 처리하지 않습니다. 파서는 코드를 실행하기 전에 먼저 함수 선언을 읽고 이를 사용 가능(액세스 가능)하게 만듭니다. 함수 표현식의 경우 파서가 해당 코드 줄에 도달할 때까지 실제로 해석 및 실행되지 않습니다. 다음 예:
코드는 다음과 같습니다.
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; };
선언 시 변수를 통해 함수에 접근할 수 있다는 점을 제외하면 함수 선언 구문과 함수 표현식 구문은 실제로 동일합니다. . 의.
참고: var sum=function sum(){}과 같이 함수 선언과 함수 표현식을 동시에 호출할 수도 있습니다. 그러나 이 구문은 Safari에서 오류를 발생시킵니다.
이상 내용이 이 글의 전체 내용입니다. 자바스크립트를 공부하시는 모든 분들께 도움이 되었으면 좋겠습니다.
더 많은 관련 튜토리얼을 보려면 자바스크립트 튜토리얼
을 방문하세요.