본문 바로가기
[ 프론트엔드 ]/JavaScript

[ JavaScript ] 함수 선언식 vs. 함수 표현식

by 불주먹고양이 2022. 1. 12.

함수 선언식 : function으로 시작하는 함수 선언문

function hello() {
  console.log("Hello~")
}

hello()

 

함수 표현식 : 함수를 변수로 저장하여 나타낸 것 / 함수 이름 필요 없음. 변수명이 함수 이름을 대체.

let helloMachine = function () {
  console.log("Hello!")
}

helloMachine();

 

 

둘의 차이점은 함수 선언 전에 호출이 가능한지의 여부이다.

hello()
function hello() {
  console.log("Hello~")
}

함수 선언문은 가능하다. 호이스팅이 되기 때문이다.

 

helloMachine();
let helloMachine = function () {
  console.log("Hello!")
}

Uncaught ReferenceError: Cannot access 'helloMaching' befor initialization

함수 표현식은 불가능하다. 호이스팅이 안되기 때문이다.