Javascript 함수: 함수 설명, 함수 표현 식, NFE 라 는 함수 표현 식
4144 단어 JavaScript
functions-declarations-and-expressions
자바 script 에서
함 수 는 변수 처럼 어디에서 나 정 의 될 수 있 습 니 다.
Javascript 에서 정 의 된 함 수 는 다음 과 같은 세 가지 방식 이 있 습 니 다.
함수 가 설명 할 때, 뒤쪽 은 다른 코드 와 구분 할 필요 가 없습니다.
function Identifier ( FormalParameterListopt ) { FunctionBody }
// for 、if , 。
for (variable=startvalue;variable<endvalue;variable=variable+increment)
{
code to be executed
}
if (condition)
{
code to be executed if condition is true
}
else
{
code to be executed if condition is not true
}
함수 성명 의 이름 은 함수 내부 와 함수 가 있 는 parent 내부 에서 볼 수 있 습 니 다!
함수
사전 실행 기간 (즉, 브 라 우 저 에서 코드 를 실행 하려 고 할 때, 코드 를 정식으로 실행 하기 전에) 이 분석 되 었 습 니 다.따라서 함수 성명 방식 으로 정 의 된 함 수 는 성명 전에 호출 할 수도 있 고 성명 후에 호출 할 수도 있다.아래 와 같다
//
function sayHi(name) {
alert("Hi, "+name)
}
sayHi("John");
//
sayHi("John");
function sayHi(name) {
alert("Hi, "+name)
}
함 수 는 코드 의 어느 곳 에서 든 지 설명 할 수 있 습 니 다. 아래 열 을 보십시오.
sayHi();
if (1) {
function sayHi() { alert(1) }
} else {
function sayHi() { alert(2) } // <--
}
다른 브 라 우 저 에서 상기 코드 를 실행 해 보 세 요. Firefox F14 에서 상기 코드 를 실행 하면 반응 이 없습니다.다른 브 라 우 저 는 2 를 되 돌려 줍 니 다.
함수 성명 이 실행 되 기 전에 해석 되 었 기 때문이다.
규범 (p. 10.5) 에 따라 뒤의 같은 이름 을 가 진 함수 성명 은 앞 에 존재 하 는 함수 성명 을 덮어 씁 니 다.
실행 기간 이 되 었 을 때, 이 성명 코드 들 은 무시 되 었 다.따라서 if 판단 자체 가 영향 을 주지 않 는 다.
함수 식 문법:
함수
1 등 시민 은 숫자, 문자열 과 같다.값 을 놓 을 수 있 는 곳 이 라면 함수 하 나 를 놓 을 수도 있 습 니 다.
함수 표현 식 은 함수 function (arguments) {...} 을 포함 하 는 모든 표현 식 입 니 다.주의:
다음 표현 식 에서 설명 한 마지막 따옴표 구분자 입 니 다.
함수 식 의 function 에 도 자신의 이름 이 있다 면 이 이름 은 함수 내부 에서 만 볼 수 있 습 니 다. NFE (Named function expressions) 라 는 함수 표현 식 을 참고 하 십시오.
함수 식 문법 예 1:
var f = function(arguments) {
... code ...
};
함수 식 문법 예 2:
익명 함 수 를 만 들 고 생 성 된 익명 함 수 를 동시에 실행 합 니 다.
왜 함수 가 괄호 안에 있 습 니까? 자바 script 은 함수 표현 식 만 여기에서 실 행 될 수 있 기 때 문 입 니 다.
(function() {
var a, b // local variables
// ... // and the code
})();
함수 성명, 함수 표현 식
Javascript
주 코드 흐름 에서 함 수 를 해석 할 때 함수 설명 입 니 다.그렇지 않 으 면 함수 가 statement 의 일부분 일 때 함수 표현 식 입 니 다.
자바 script 의 실행 흐름 이 도 착 했 을 때 함수 표현 식 이 생 성 됩 니 다.따라서 함수 표현 식 은 성명 후에 만 사용 할 수 있 습 니 다.
var sayHi;
// sayHi(); <-- sayHi , ,sayHi 。
if (1) {
sayHi = function() { alert(1) };
} else {
sayHi = function() { alert(2) };
}
sayHi();
권장: 함수 표현 식 이 아 닌 함수 성명 을 사용 하 십시오.함수 표현 식 은 필요 할 때 만 사용 합 니 다: 조건 함수 정의 사용
함수 성명 은 선행 실행 기 에 있 고 함수 표현 식 은 실행 기 에 있 습 니 다.
세 번 째 함수 정의 방식: new Function 을 사용 합 니 다. 다음 과 같 습 니 다. 이런 방식 은 거의 사용 되 지 않 습 니 다.
var sayHi = new Function('name', ' alert("Hi, "+name) ');
sayHi("Benedict");
NFE (Named function expressions) 라 는 함수 표현 식: 다음 함수 표현 식 은 자신의 이름 을 포함 합 니 다.
var f = function sayHi(name) {
alert("Hi, "+name)
};
위의 문법 은 NFE 라 고 불 린 다.이 문법 을 지원 하 는 브 라 우 저 에서
function 성명 의 이름 은 함수 내부 에서 만 볼 수 있 습 니 다.아래: Firefox 14 에서 say Hi1 의 이름 은 함수 밖에서 호출 되 지 않 습 니 다!IE8 가능 합 니 다!
var f = function sayHi(name) {
alert(sayHi);
};
f(1);
sayHi(1);
NFE 는 일반적으로 재 귀적 으로 호출 되 는 곳 에 사용 된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.