728x90
반응형
참조 : https://developer.mozilla.org/ko/docs/Glossary/Hoisting
요약
호이스트 : 변수의 정의가 그 범위에 따라 선언과 할당으로 분리되는것.
선언만은 맨 위로 끌어올려짐. 할당은 순서대로.
JavaScript에서 실행 콘텍스트(생성 및 실행단계)가 어떻게 동작하는가? (선언 -> 실행 -> 할당 )
num = 6;
num + 7;
var num;
컴파일 단계에서 선언부분이 호이스팅 되기때문에 위와같은 코드는 에러가 나지 않음!
var x = 1; // x 초기화
console.log(x + " " + y); // '1 undefined'
var y = 2;
// 아래 코드는 이전 코드와 같은 방식으로 동작합니다.
var x = 1; // Initialize x
var y; // Declare y
console.log(x + " " + y); // '1 undefined'
y = 2; // Initialize y
cf) 지역변수인가, 전역변수인가에 따라.
변수가 함수 내에서 정의되었을 경우, 선언이 함수의 최상위에
함수 바깥에 정의되었을 경우에는 전경 컨텍스트의 최상위에 정의된다.
※function-level인지, block-level인지 지역-전역변수의 구분이 다름.(var,let)
https://messycode.tistory.com/5?category=768112
와 함게 보면 좋음!
반응형
'창고(2021년 이전)' 카테고리의 다른 글
[Git] Command Line (0) | 2019.09.30 |
---|---|
[JS] array Method(forEach, map, filter,reduce) (0) | 2019.09.29 |
[JS] truthy, falsy (0) | 2019.09.29 |
[JS] var, let, const (0) | 2019.09.29 |
CodeStates Pre과정시작 - Level1(JS) (0) | 2019.09.28 |