본문 바로가기

Javascript

함수 선언문 vs 함수 표현식

반응형

이 궁금증의 경우, 함수를 표현할 때 function A( ) { }의 표현법을 사용할 지, const A = ( ) => { } 의 표현법을 사용할지에 대해 페어와 고민하다가 갖게 되었다. 그러다 리뷰어님의 도움을 받아 함수 표현식과 함수 선언문이 있다는 것을 알게 되었다.

함수 선언문

function test() { 
  // 함수 내용
}

 

  • 일반적인 프로그래밍 언어에서 함수를 선언하는 방식으로 함수 리터럴과 모양이 동일하다. 
  • 함수 이름을 생략할 수 없다.
  • Hoisting에 영향을 받는다. 즉, 코드를 구현한 위치와 관계없이 브라우저가 자바스크립트를 해석할 때 맨 위로 끌어올려준다.

함수 표현식

const test1 = function foo() {};

const test2 = function () {}; // 익명 함수

const test3 = () => {}; // 익명 함수 + 화살표 함수

 

  • 함수 표현식은 변수에 함수를 담는 표현 방법이다.
  • 자바스크립트에서 함수는 이다. 따라서 함수도 값처럼 할당, 복사, 선언을 할 수 있다.
  • 함수 이름을 생략할 수 있다. 즉, 익명 함수가 가능하다.
  • Hoisting에 영향을 받지 않는다. 따라서, 선언 후에 호출 해야한다.

 

 

출처

https://gmlwjd9405.github.io/2019/04/20/function-declaration-vs-function-expression.html

반응형

'Javascript' 카테고리의 다른 글

자바스크립트 Hoisting  (0) 2021.09.19
자바스크립트 Prototype  (0) 2021.09.19
DOM  (0) 2021.04.27
자바스크립트 This  (0) 2021.04.27
No newline at end of file(EOF)  (0) 2021.04.26