본 내용은 Udemy의 클린코드 자바스크립트 강의를 토대로 작성하였습니다.
1. 호이스팅이란
- 런타임 시기에서 선언과 할당이 분리된 것
- 선언부만 최상단으로 끌어올려지는 것
- var의 경우 초기화하가 제대로 되어 있지 않았을 때 undefined로 호이스팅 됨
- 런타임에 예측 불가능한 문제를 일으킬 수 있음
- 함수 또한 호이스팅 됨
var ex = 0;
function outer() {
var ex;
console.log(ex); // undefined
ex = 10;
function inner() {
var ex = 20;
console.log(ex); // 20
}
inner();
ex = 1;
console.log(ex); // 1
}
outer();
var ex;
console.log(typeof ex); // function
function ex() {
return 'example function';
}
2. 호이스팅 방지
- let & const로 변수를 선언
- 함수 선언식보다 const를 사용한 함수 표현식을 사용하기
- undefined로 호이스팅되지 않고 에러를 발생 시킴
- var사용은 지양하기
const example = () => return 'example function';
Reference
'programming study > JavaScript' 카테고리의 다른 글
클린코드 자바스크립트 - 타입 다루기(undefined & null) (0) | 2022.12.14 |
---|---|
클린코드 자바스크립트 - 타입 다루기(타입 검사) (0) | 2022.12.14 |
클린코드 자바스크립트 - 변수(임시변수 제거하기) (0) | 2022.12.14 |
클린코드 자바스크립트 - 변수(전역 공간 사용 최소화) (0) | 2022.12.14 |
클린코드 자바스크립트 - 변수(function scope & block scope) (0) | 2022.12.14 |