Hoisting
hoisting이란?
- 호이스팅은 코드가 실행하기 전 변수,함수선언이 해당 scope의 최상단으로 끌어 올려진 것 같은 현상을 말합니다 자바스크립트코드가 실행되기 전 함수와 변수선언이 먼저 스캔되고 lexical environment라는 자바스크립트 데이터 내 메모리에 추가됩니다 따라서 변수, 함수를 선언시 호이스팅되서 코드 내에 선언되기 이전부터 사용 할 수 있습니다.
scope란?
- globalScope
- 전역에 선언되어있어 어느곳에서든지 해당 변수에 접근할 수 있다
- localScope
var a = 1;
function print() {
var a = 111;
console.log(a);
}
print();
console.log(a)
lexical environment란?
- identifier-variable 이렇게 매핑 정보를 가지고 있는 데이터 구조 입니다
참고
스코프관련 블로그
hoisting관련 블로그