본문 바로가기
Study/JAVASCRIPT

JavaScript - 함수 선언 위치, 함수 선언식, 함수 표현식, 호이스팅

by 멘탈은안녕하신가 2021. 1. 4.
728x90
반응형
  • JavaScript에서 함수를 사용할 때는 두가지 방법이 있다.
    1. 함수 선언식
    2. 함수 표현식

1. 함수 선언식 예

a();	//a가 출력됩니다.
function a(){
	console.log('a가 출력됩니다.');
}

 

2. 함수 표현식 예

b();	//error
const b = function () {
	console.log('b가 출력됩니다.');
}

 

  • JavaScript는 2번 함수 표현식처럼 함수를 변수에 담을 수 있다.
  • 여기서 중요한건 2번 '함수 표현식'은 에러가 발생한다는 점이다.
  • 왜 에러가 발생할까? '호이스팅' 때문이다.

 

  • 호이스팅이란?

호이스팅은 JavaScript에서 실행 콘텍스트(특히 생성 및 실행 단계)가 어떻게 동작하는가에 대한 일반적인 생각으로 여겨집니다.

 

처신 잘하라구~? 꽤 잘그린것 같다.

이 친구가 하는 그 '호이'가 아니다.

 

  • 1번 함수 선언식의 경우 JavaScript에서 실행될 때 a라는 함수를 실행하기 전 a함수를 먼저 확인하고 실행하는 반면
  • 2번 함수 표현식의 경우 b라는 변수에 익명함수(이름이 없는 함수)가 들어가 있기 때문에 먼저 변수 선언이 이뤄지고 함수 실행이 이뤄진다, 그래서 2번처럼 실행시키고 싶다면 순서를 아래와 같이 바꿔주자
const b = function () {
	console.log('b가 출력됩니다.');
}

b();	//b가 출력됩니다.

 

728x90
반응형

댓글