JS Hoisting (호이스팅)

lynn·2022년 5월 14일
0

JavaScript

목록 보기
3/21

변수,함수의 선언부만 코드의 최상단으로 끌어올려주는 것
함수를 나타내는 방법 모두 호이스팅은 가능하지만 선언식보다는 표현식에서 권장된다.

  1. 선언식 함수에서의 호이스팅→권장X
catDeclaration();
function catDeclaration(){
	console.log("야옹이");
}
//'야옹이'

어느 줄에서 호출할 수 있는 함수로써 위험성이 크기 때문에 권장하지 않는다.

2. 표현식 함수에서의 호이스팅→권장!

catExpression()
const catExpression=function(){
	console.log("야옹이");
}
//ReferenceError: catExpression is not defined

const cat=function(){
	console.log("야옹이");
}
cat();
//'야옹이'

호이스팅되지 않은 상태에서 표현식 함수가 할당된 이후에만 실행이 가능하다.
화살표 함수(arrow function)도 표현식과 동일하게 호이스팅되지 않는다.

호이스팅이 되더라도 접근을 막는 방법

  1. 함수를 let이나 const를 사용하여 할당한다.
    →Temporal Dead Zone(TDZ)
    → var는 접근이 가능해서 아주 좋지 않음,실무에서도 사용하지 않는다고 함)
  2. 선언식보다 표현식,화살표 형태로 할당한다.
profile
개발 공부한 걸 올립니다

0개의 댓글