함수 선언문

function sayHi() {
  alert("Hello, World!");  
}

sayHi();

위에서 sayHi 함수는 함수 선언문(statement)방식으로 만들어진 함수이다. 문장이기 때문에 함수명을 생략할수없다.

함수 표현식

var msg = "Hello, World!";
var sayHi = function() {
  alert(msg);  
};

sayHi(); 

반면 위와 같이 함수를 값으로써 취급하는 함수표현식 방식으로도 함수를 만들수있다.

또한, 함수표현식은 값으로 취급될수 있기 때문에 함수의 이름이 없어도 된다.

기명 함수 표현식

var fibo = function fibonacci() {
  fibonacci();// 여기서 fibonacci() 함수를 호출할 수 있습니다.
  // 이 함수 표현식이 이름을 갖고 있기 때문입니다.
}

// 여기서 fibonacci()를 호출하면 실패합니다. 하지만 fibo()는 동작합니다.

IIFE 즉시함수호출표현식

!function() {
  alert("Hello from IIFE!");  
}();
// "Hello from IIFE" 메시지를 보여줍니다.