Function Declaration vs Function Expression In JavaScript

Yunwoo Ji·2021년 6월 15일
0

JavaScript

목록 보기
3/4
post-thumbnail

Ref: https://mayanovarini.medium.com/functions-in-javascript-declaration-expression-arrow-d6f907dc850a

함수를 사용할 때 일반적으로 세 가지 방법이 있다.

  • Function Declaration
  • Function Expression
  • Arrow Function Expression

오늘은 Function Declaration과 Function Expression의 차이점에 대해서 알아보려고 한다.

Function Declaration vs Function Expression

이 두 방법은 함수의 실행 시간에 있어서 차이가 있다.

Function Expression은 실행 중에 코드를 만났을 때 함수가 생성된다. 그렇기 때문에 그 이후부터 사용이 가능하다.

let sum = function(a,b) { ... };
// 이 시점에서, sum은 함수를 가지게 된다.

Function Declaration은 이와 다르다. 자바스크립트가 코드를 실행하려고 준비할 때, 먼저 Function Declaration을 찾고, 함수를 생성한다. 마치 var가 hoisted되는 것처럼. (hoisted: 코드 어디에서 변수가 선언되든지 최상단에서 선언되는 것과 동등함)

그리고, Function Declaration이 처리된 이후에 실행되게 된다.

결과적으로 Function Declaration으로 선언된 함수는 그것이 정의된 것보다 먼저 호출이 가능하다.

sayHi("Pillow"); // Hello, Pillow
function sayHi(name) { 
   alert( `Hello, ${name}` ); 
}
profile
Front-End !

0개의 댓글