[Javascript] 호이스팅(Hoist)

목차

자바스크립트 기초를 공부하다보면 호이스트란 단어가 나온다.

이걸 이해하기에 조금 시간이 걸렸지만 필수로 알아야 할 내용이라 끄적여 본다.


함수내에서 변수를 찾는 방식

1. 지역변수로 선언 되어 있는지 확인

2. 지역변수가 없으면 전역변수로 선언 되어 있는지 확인

지역변수, 전역변수 변수 선언명이 같은 경우에는 지역변수를 우선적으로 찾는다.


기본적으로 호이스팅은 함수내에 선언된 변수를 위로 끌어올린다 라고 생각하면 된다.


예제를 보자

func함수 안에서 name이란 변수를 사용했다. 출력결과는 global이 나온다.

이유는 함수내에 var를 사용하지 않고 변수를 선언시에는 전역변수로 인식하기 때문이다.




위와 같은 함수에서는 

다음과 같은 결과가 출력이 된다.


이유는 호이스팅이 되었기 때문이다.

func함수에서 name이란 변수를 var name으로 지역변수를 선언했기 때문에 호이스팅이 적용된 것이다.


이해하기 어려울 것 같아서 다시 작성해보면 자바스크립트는 다음과 같이 인식을 한다.


※ 함수내에서 지역변수를 사용하게 되면 호이스팅이 적용되어 내부적으로 함수의 맨 윗부분으로 끌어올려진다.


결론은 지역변수, 전역변수 구분을 잘 해주는 것이 좋고

되도록이면 var 명칭을 사용하여 변수를 선언해주는 것이 좋다

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유