호이스팅

오우·2023년 2월 7일
0

자바스크립트는 실행될 때 ES6의 LET,CONST를 포함한 모든 선언들을 호이스팅이라고함

호이스팅이란 유효범위의 최상단으로 끌어올리는 것을 의미함

실제로 끌어올려지는것은 아닌데 내부적으로 처리되고 메모리에서는 변화가없음

CONSOLE.LOG(NAME); // undefined

VAR NAME = "HAHA"

변수 NAME을 콘솔로그보다 뒤에 입력했지만 에러가아니라 undefined가뜸

왜? 실행될 때 호이스팅으로 인해 var변수가 가장위로 이동해서 선언되어서그럼

이를 더 잘이해하려면 변수선언 3단계를 이해해야함

  1. 선언

변수를 말그대로 선언해서 변수객체에 등록

  1. 초기화

변수객체에 대한 미모리를할당, 변수는 undefined로 초기화

  1. 할당

초기화된 변수에 값을 할당함

함수도 호이스팅이 가능함.

함수선언문으로 정의된 함수는 실행되는 시점에 선언, 초기화, 할당이 한번에 이뤄짐, 그래서 함수호이스팅이 발생해 유효범위 내 어느곳에서도 호출이 가능함

profile
나는 개발자, 나는 개발자라구.

0개의 댓글