초보 개발자의 일기

호이스팅 본문

Frontend practice/java script

호이스팅

판다꼬마 2024. 1. 28. 23:24
728x90

호이스팅

자바스크립트에서 코드를 위에서 아래로 읽어가기 전, 변수, 함수, 클래스 등의 선언부를 먼저 읽어 들이는 작업을 말한다.

 

 

var는 호이스팅이 되면

const x = "x";
console.log(z);

var y='gege';
var y;
const x = "x";
console.log(z);
y='gege';

이렇게 호이스팅이 된다.

 

 

해결법

애초에 호이스팅을 안되게 코드를 작성하는 것이 훨씬 좋다.

이렇게 코드를 고려해서 작성하기 어려우면

eslint를 활용하여 호이스팅 안되게 규칙을 정해 오류를 알려주게 하여 코드를 작성하면 좋다!


TDZ

TDZ => Temporal Dead Zone

한글로 직역하면 일시적인 사각지대

 

선언보다 더 위에서 변수에 접근을 하는 것

 

코드로 예를 들자면

const num= "일";

console.log(num);

이 코드는 문제없이 작동을 한다.

 

하지만 순서를 바꾸면

console.log(num);

const num="일";

error: ReferenceError가 뜨는 것을 볼 수 있다.

 

그 이유는 TDZ는 변수 선언 및 초기화하기 전 사이의 사각지대이다.

변수를 선언 및 초기화하기 전에 사용하게 되면 TDZ 상태에서 사용하는 것 이기 때문에 에러가 난다고 볼 수 있다.

 

 

 


출처

https://www.youtube.com/watch?v=fLZ-bKT4sFs&list=PLcqDmjxt30Rt9wmSlw1u6sBYr-aZmpNB3&index=6

 

728x90

'Frontend practice > java script' 카테고리의 다른 글

this  (0) 2024.03.24
스코프체인  (0) 2024.01.28
함수와 함수의 호출, 고차함수  (0) 2024.01.20
React prop  (1) 2022.05.26
React State  (1) 2022.05.24