이 문서에는 JavaScript 함수 정의와 관련된 일반적인 문제가 요약되어 있습니다. 초보자가 흔히 범하는 실수가 포함되어 있습니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 내용을 요약하면 다음과 같습니다.
1. 함수가 선언되면 JS 엔진도 함수 이름과 동일한 이름으로 변수를 정의합니다. 이 함수를 호출하면 실제로 이 변수를 사용하고 있으며 함수가 선언되기 전에 호출할 수 있습니다. ,
등foo(); //这里实际上是使用了一函数变量 function foo() { alert('hello'); }
2. 함수 표현식 이때 익명 함수는
과 같이 정의한 후 사용해야 합니다.foo(); //报错,未定义 var foo = function() { alert('hello'); }
3. 함수 표현(함수 이름 포함), 현재 함수 이름은
과 같은 IE가 아닌 브라우저에서만 사용할 수 있습니다.bar(5); //报错,未定义 var bar = function foo(n) { if (n == 1) return 1; else return n * foo(n - 1); } foo(5); //非IE报错,未定义 bar(5); //正确
4. 함수 생성자를 사용하여 정의합니다. 이 방법은 함수가 실행될 때마다 함수 본문이 구문 분석됩니다. 또한, 이런 방식으로 선언된 함수는 현재 선언 위치의 범위를 상속하지 않습니다.
과 같이 기본적으로 전역 범위만 갖습니다.function foo() { var bar = 'hello'; return Function('alert(bar)'); //报错,全局变量bar未定义 } foo()();
저는 이 글에 설명된 내용이 모든 사람의 자바스크립트 WEB 프로그래밍 학습에 확실한 참고 가치가 있다고 믿습니다.