hoisting

    [ JavaScript ] 호이스팅

    호이스팅이란 ? 호이스팅은 인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 임포트의 선언문을 해당 범위의 맨 위로 끌어올리는 것처럼 보이는 현상을 뜻합니다. console.log(str); // undefined var str = "Hello"; 해당 코드에서 str이라는 변수가 콘솔 아래에 선언되어 있지만, 오류가 생기지 않고, undefined를 출력합니다. 이는 호이스팅의 영향으로 코드가 실행되기 전에 선언문이 undefined 상태로 메모리에 할당되기 때문입니다. 호이스팅은 어떻게 이뤄질까 ? JS엔진이 코드를 스캔할 때 실행 컨텍스트 > 렉시컬 환경 > 환경 레코드에 유효 스코프 내의 식별자의 정보를 수집합니다. 그렇기 때문에 해당 스코프 내 어느 위치에서든 해당 식별자를 참조할 수..

    [ JavaScript ] 호이스팅

    [ 면접 준비 ] 호이스팅(hoisting)이란 ?

    자바스크립트 호이스팅은 인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 임포트(import)의 선언문을 해당 범위의 맨 위로 이동시키는 과정을 말합니다. - MDN Web Docs - '선언문을 해당 범위의 맨 위로 이동시키는 과정' 이 문장이 이번 포스트의 핵심입니다. 하지만, 자바스크립트 파일을 한 번이라도 생성해 보고 코드를 작성해 봤다면 코드가 움직이진 않는다는 사실을 알 거예요. 맞습니다. 코드는 움직이지 않아요. 단지 맨 위로 이동시키는 것처럼 보이게 동작합니다. Lexical Environment 호이스팅을 본격적으로 설명하기 전에, Lexical Environment라는 것을 먼저 알아두면 좋아요. Lexical Environment는 변수와 함수의 scope와 identifi..

    [ 면접 준비 ] 호이스팅(hoisting)이란 ?