호이스팅(Hoisting)
변수와 함수 선언을 코드의 상위 부분으로 끌어올리는 것을 의미한다
Javascript에서 컴파일 단계에서 변수 선언과 함수 선언이 해당 스코프 맨 위로 이동한다
호이스팅의 과정
- 코드 실행 전 실행 컨텍스트가 생성되고 변수 객체가 초기화된다.
- 변수 객체 내에서 변수 선언과 함수 선언이 찾아지고 메모리에 저장된다.
이때 변수는 undefined로 초기화되고 함수는 전체 함수 선언이 저장된다. - 코드 실행이 시작되면 변수 값이 할당되고 함수 호출이 이루어진다.
호이스팅은 주의해야하는 부분이 있다
예상하지 못한 결과 : 호이스팅으로 인해 변수가 선언되기 전에 참조되거나 사용될 수 있다 이로 인해 예기치 않은 결과가 발생할 수 있다
가독성 및 유지 보수의 어려움 : 변수나 함수 선언이 코드 상단으로 끌어올려지면 코드의 흐름이 불명확해지고 유지 보수가 어려워진다
호이스팅을 피하기 위한 방법
변수를 상단에 배치하여 호이스팅의 영향을 줄인다
let, const를 사용해 호이스팅이 발생하지 않도록 한다
호이스팅으로 인한 버그와 혼란을 최소화하자!
'과거공부모음' 카테고리의 다른 글
멀티스레딩과 멀티프로세싱 (0) | 2023.04.24 |
---|---|
테스트(Testing) (0) | 2023.04.21 |
실행 컨텍스트와 스코프 (0) | 2023.04.20 |
버퍼(buffer)와 스트림(stream) (0) | 2023.04.20 |
node.js 모듈 시스템 (0) | 2023.04.20 |