미미의 메모장

[Javascript] 함수 표현식 vs 함수 선언문 본문

memo/Front-End💙

[Javascript] 함수 표현식 vs 함수 선언문

mimi memo 2023. 5. 31. 11:02

1. 함수 표현식

//기명 함수 표현식
var add = function add(a, b){
	return a + b;
};

 

//무명 함수 표현식(함수 표현식 = 익명 함수)
var add = function (a,b) {
	return a + b;
};


기명 함수 표현식에서 두 번째 add를 생략하고 무명 함수 표현식으로 끝내도, 함수의 정의나 뒤이은 함수의 호출에 영향을 미치지 않는다. 유일한 차이점은 함수 객체의 name 프로퍼티가 빈 문자열이 된다는 것이다. 
함수 선언문과 기명 함수 표현식을 사용하면 name프로퍼티가 문자열로 정의된다. 반면 무명 함수 표현식의 name 프로퍼티 값은 경우에 파이어 폭스와 웹킷에서는 빈 문자열로 정의된다. 

 


2. 함수 선언문

//함수 선언문
function foo() {
	//함수 부분
}

 

함수 선언문은 전역 유효범위나 다른 함수의 본문 내부, 즉 '프로그램 코드'에서만 쓸 수 있다. 변수나 프로퍼티에 할당 할 수 없고, 함수 호출시 인자로 함수를 넘길 때도 사용할 수 없다. 

'memo > Front-End💙' 카테고리의 다른 글

[Javascript] 타임아웃  (0) 2023.05.31
[Javascript] class 정리  (0) 2023.05.31
[Javascript] 브라우저 동작 원리  (0) 2023.05.31
[Javascript] 콜백 패턴  (0) 2023.05.31
[Javascript] 함수 호이스팅  (0) 2023.05.31