//함수 참조중
console.dir(add);
console.dir(sub);
//함수 호출중
console.log(add(2,5));
console.log(sub(2,5));
//함수 선언문
function add(x,y) {
return x + y;
}
//함수 표현식
var sub = function(x,y) {
return x - y;
}
와..정말 C언어였으면 상상도 못할 일이 일어났다. 함수 선언문
으로 정의한 함수는 함수 선언문 이전에 호출
이 가능하다. 그러나 함수 표현식
으로 정의한 함수는 함수 표현식 이전에 호출 불가능하다.
함수 선언문
으로 정의한 함수와 함수 표현식
으로 정의한 함수의 생성 시점이 다르기 때문이다.
먼저 어떤 순서로 객체 할당 생성이 이루어지는지 확인해보자.
1. 런타임 이전에 함수 선언문이 자바스크립트 엔진에 의하여 실행된다.