javascript- 호이스팅

현우.·2024년 6월 20일

JavaScript

목록 보기
24/31
post-thumbnail

호이스팅

호이스팅이랑 변수,함수,클래스의 선언문을 코드 상단으로 끌어 올리는 것을 말한다.

js 엔진이 코드를 실행하기전 코드 전체를 한번 스캔하고 선언과 관련된 모든 것들을 상단으로 올려준다.

변수의 호이스팅

console.log(hi);  // ReferenceError: Cannot access 'hi' before initialization
let hi ='hi';

let, const 변수는 호이스팅 되어도 변수의 선언만 올려주지 초기화는 안된다.

함수의 호이스팅

선언문 호이스팅

func(); // hi

function func(){
    console.log('hi');
    
}

함수 선언문은 자체가 선언문이기 때문에 호이스팅이 완벽하게 된다.

표현식 호이스팅

console.log(func); // ReferenceError: Cannot access 'func' before initialization

let func =function(){
	return 'hi';	
}

함수 표현식은 변수에 함수를 할당하는 것이므로 호이스팅 되어도 초기화는 안된다.

클래스 호이스팅

const hello = new Class1(); 
// ReferenceError: Cannot access 'Class1' before initialization
class Class1 {};  // 초기화 부분

클래스도 마찬가지로 호이스팅 하더라도 초기화는 안된다.

profile
학습 기록.

0개의 댓글