gazero
로그인
gazero
로그인
[완강 챌린지] 웹 프론트엔드를 위한 자바스크립트 첫 걸음 : section2-8. 호이스팅
const job = '프론트엔드';
·
2023년 6월 23일
팔로우
1
변수 호이스팅
웹 프론트엔드를 위한 자바스크립트 첫 걸음
자바스크립트
함수 호이스팅
호이스팅
1
웹 프론트엔드를 위한 자바스크립트 첫걸음
목록 보기
8/27
호이스팅(hoisting)?
아직 선언되지 않은 함수나 변수들을 스코프의 맨 위로 끌어올려서 사용하는 것처럼 보이게하는 작동 방식
함수 호이스팅
함수가 선언되기 전에 함수를 호출하더라도 함수는 오류없이 출력됨
이는 gazero 호출문 보다 선언문이 먼저 작성되어 있는 코드로 받아들여지기 때문
함수 선언문을 gazero함수가 갖는 스코프, 유효범위의 가장 위쪽으로 끌어올려서 코드를 해석하는 작동 방식이 함수 호이스팅
변수 호이스팅
var를 이용해 변수를 선언
실행결과 Error가 아닌 undefined로 출력됨
var gazero;라는 변수의 선언문만 윗쪽으로 올라감
let 이나 const의 경우?
undefined이 아니라 error가 발생
그렇다면, let과 const로 선언된 변수는 변수 호이스팅이 발생하지 않는 걸까? NOPE! ❗
TDZ
❗의 존재 때문 !
TDZ(Temporal Dead Zone), 일시적인 사각지대
변수를 사용하는 것을 허용하지 않는 공간
let과 const에 호이스팅이 발생하지 않는 것이 아님
변수 스코프의 맨 위에서 변수의 초기화가 완료될 때 까지 TDZ 공간에 있기 때문에 호이스팅이 발생하지 않는 것처럼 보임
const job = '프론트엔드';
`나는 ${job} 개발자`
팔로우
이전 포스트
[완강 챌린지] 웹 프론트엔드를 위한 자바스크립트 첫 걸음 : section2-7. 스코프
다음 포스트
[완강 챌린지] 웹 프론트엔드를 위한 자바스크립트 첫 걸음 : section2-9. 함수 표현식
0개의 댓글
댓글 작성