• 티스토리 홈
  • 프로필사진
    KIMJAVAN
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
KIMJAVAN
  • 프로필사진
    KIMJAVAN
    • 개발 (178)
      • 마크업 언어 (20)
        • HTML (8)
        • CSS (12)
      • 자바스크립트 (95)
        • JavaScript (35)
        • JS Library (7)
        • React (18)
        • threeJS (6)
        • TypeScript (3)
        • Next js (7)
        • Node JS (18)
        • webGL (1)
      • AI (4)
        • chat-gpt (4)
      • flutter (17)
        • dart (11)
        • flutter (6)
      • Sql (3)
      • PHP (4)
      • Python (2)
      • Git (6)
      • vscode (1)
      • 개발 도움 사이트 (7)
      • 작업기록 (4)
      • 오류 모음 (4)
      • 메모장 (7)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [JavaScript] 호이스팅
        2025년 09월 29일
        • KIMJAVAN
        • 작성자
        • 2025.09.29.:50
        728x90

        🔹 1. 호이스팅의 기본 원리

        • JS 엔진은 실행 전에 변수 선언과 함수 선언을 먼저 메모리에 올려둡니다.
        • 그래서 코드에서 선언보다 사용이 앞서도 에러 없이 동작하는 경우가 있습니다.

        🔹 2. 변수 호이스팅

        var

        • 선언만 호이스팅 되고, 초기화는 호이스팅되지 않음
         
        console.log(a); // undefined var a = 10;

        실제로 JS 엔진이 해석하는 방식:

         
        var a; // 선언만 끌어올려짐 console.log(a); // undefined a = 10; // 할당은 그대로

        let과 const

        • 선언도 호이스팅은 되지만, TDZ(Temporal Dead Zone, 일시적 사각지대) 때문에 초기화 전에는 참조 불가 → ReferenceError 발생
         
        console.log(b); // ❌ ReferenceError let b = 20; console.log(c); // ❌ ReferenceError const c = 30;

        🔹 3. 함수 호이스팅

        함수 선언문

        • 함수 전체가 호이스팅 됨
         
        sayHello(); // 정상 동작 function sayHello() { console.log("Hello"); }

        함수 표현식

        • 변수 호이스팅 규칙을 따름
         
        sayHi(); // ❌ TypeError: sayHi is not a function var sayHi = function() { console.log("Hi"); };

        → var sayHi는 선언만 호이스팅, 값은 아직 할당되지 않았기 때문

        '자바스크립트 > JavaScript' 카테고리의 다른 글

        [JavaScript] this  (0) 2025.01.23
        [JavaScript] class 문법  (1) 2025.01.23
        [JavaScript] 제곱근 판별  (4) 2025.01.16
        [JavaScipt] 임의의 숫자를 큰 것 부터 작은 순으로 재정렬하기  (0) 2025.01.16
        [JavaScript] let, var, const / promise / 동기, 비동기  (1) 2025.01.16
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바