[JS] 함수 표현식과 함수 선언 간단 비교

Hanji·2022년 1월 9일
1

function a() {}var a = function(){}의 차이는 무엇인가?

함수 표현식

var a = function(){
	//...
}
//화살표 함수로도 표현 가능
var a = () => {
	//...
}
  • 해당 라인에 도달할 때만 정의됨.
  • 함수 선언과 다르게 호이스팅 되지 않음.

함수 선언

function a() {
	//...
}
  • 함수 선언은 그 선언을 둘러싼 함수의 최상부나 저역 범위로 끌어올려짐(호이스팅).

함수 표현식과 함수 선언 차이

  • 함수 표현식은 호이스팅되지 않고 함수 선언은 호이스팅 된다.
// TypeError: a is not a function
a();

var a = function(){
	console.log('aaa');
}
![](https://velog.velcdn.com/images%2Fjiseon-han%2Fpost%2Fc1c3c3a3-849e-48c1-899e-0b7e44dbe53c%2Fimage.png)
//outputs: bbb
b();

function b() {
	console.log('bbb');
}


🔖 참고
MDN 함수 표현식
MDN 함수 선언

0개의 댓글