자바스크립트 함수를 선언하는 여섯가지 방법

자바스크립트의 함수는 일급 객체다

일급객체의 정의는 다음과 같다.

  1. 모든 요소는 함수의 실제 매개변수가 될 수 있다.
  2. 모든 요소는 함수의 반환 값이 될 수 있다.
  3. 모든 요소는 할당 명령문의 대상이 될 수 있다.
  4. 모든 요소는 동일 비교의 대상이 될 수 있다.

자바스크립트에서 함수는, 다음 모두를 충족 시키므로 일급 객체라고 볼 수 있다.

함수를 선언하는 6가지 방법

1. named function declaration (명명 함수 선언)

함수를 선언하는 6가지 방법

1. named function declaration (명명 함수 선언)

function hello() {
// ...}

가장 대중적인 방법이다. 함수의 이름이 **hello**가 된다. 이미 여러차례 싸질러 놨듯, 호이스팅 되기 때문에 이 함수는 어느 스코프에서든 호출 할 수 있는 함수가 된다.

2. anonymous function expression (익명 함수 표현)

var hello = function () {
//...}

이름이 없는 함수를 변수에 담은 방식이다. 이름이 없는 함수긴 한데, 자바스크립트 엔진이 이름을 변수명으로 추정하여 넣는다.

var hello = function () {
//...}

hello.name

//  > "hello"
hello

// > ƒ () {//   //...// }

변수 할당은 호이스팅 되지 않으므로, 할당 된 이후에만 실행 가능하다.