함수 생성시점과 함수 호이스팅

개발 log·2021년 9월 9일
0

JS 지식

목록 보기
12/36
post-thumbnail

함수 생성 시점

// 함수 참조
console.dir(add); // ⨍ add(x, y)
console.dir(sub); // undefined

// 함수 호출
console.log(add(2, 5)); // 7
console.log(sub(2, 5)); // TypeError: sub is not a function

// 함수 선언문
// add 선언 + function 할당
function add(x, y) {
  return x + y;
}

// 함수 표현식
// sub 선언 -> function 할당
var sub = function(x, y) {
  return x - y;
};

함수 선언문으로 정의한 함수는 함수 선언문 이전에 호출할 수 있다

함수 표현식으로 정의한 함수는 함수 표현식 이전에 호출할 수 없다

이는 함수 선언문으로 정의한 함수와 함수 표현식으로 정의한 함수의 생성 시점이 다르기 때문

함수 호이스팅

함수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 JS 고유의 특징을 함수 호이스팅이라고 함

함수 표현식으로 함수를 정의하면 함수 호이팅이 아닌 변수 호이스팅이 발생함

profile
프론트엔드 개발자

0개의 댓글