이 기사는 JavaScript 함수 정의의 일반적인 문제를 요약합니다. 초보자가 저지르는 일반적인 실수가 포함되어 있습니다. 참조를 위해 공유하십시오. 특정 요약은 다음과 같습니다.
1. 함수 선언과 동시에 JS 엔진은 기능 이름과 동일한 이름의 변수를 정의합니다. 이 기능을 호출 할 때 실제로이 변수를 사용하고 있으며 함수 선언 전에 호출 할 수 있습니다.
foo (); // 함수 변수는 실제로 여기에 사용됩니다. foo () {alert ( 'hello'); }2. 함수 표현식,이 시점에서 익명 함수는 변수에 할당되며, 예를 들어 정의 후 사용해야합니다.
foo (); // 오류 가보고되어, 정의되지 않은 var foo = function () {alert ( 'hello'); }3. 함수 표현식 (함수 이름으로),이 사용법은 피할 수 있습니다. 현재 함수 이름은 비이 브라우저에서만 내부적으로 사용할 수 있습니다.
바 (5); // 오류 가보고되어, 정의되지 않은 var bar = function foo (n) {if (n == 1) return 1; 그렇지 않으면 n * foo (n -1)를 반환합니다. } foo (5); // IE 오류 가보고되지 않음, 정의되지 않은 막대 (5); //옳은4. 함수 생성자를 사용한 정의이 방법은 비효율적입니다. 함수가 실행될 때마다 기능 본문이 한 번 구문 분석됩니다. 또한 이러한 방식으로 선언 된 기능은 현재 선언 된 위치의 범위를 상속하지 않습니다. 예를 들어 기본적으로 만 글로벌 범위를 갖습니다.
함수 foo () {var bar = 'hello'; 반환 함수 ( 'Alert (bar)'); // 오류 가보고되고, 글로벌 변수 막대는 정의되지 않습니다} foo () ();이 기사의 설명에는 모든 사람이 JavaScript 웹 프로그래밍에 대한 학습에 대한 특정 참조 가치가 있다고 생각합니다.