2024-02-01[TIL]

jenna·2024년 2월 1일
0

TIL/WIL

목록 보기
58/59

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 이렇게 매핑 정보를 가지고 있는 데이터 구조 입니다
    • identifierdms 변수, 함수의 이름을 가리키며, variable은 실제 객체 또는 원시값을 가르킵니다.
        LexicalEnvironment = {
         Identifier:  <value>,
         Identifier:  <function object>
        }

참고
스코프관련 블로그
hoisting관련 블로그

profile
https://github.com/jennaaaaaaaaa

0개의 댓글