JavaScript의 호이스팅 메커니즘


⭐ 칼럼 소개

프론트엔드 입문 여정: 멋진 웹 개발 세계를 탐험해 보세요. 이 칼럼을 구독하려면 위 또는 오른쪽에 있는 링크를 클릭하세요. 기하학이 여러분을 프론트엔드 여정으로 안내할 것입니다.

프런트엔드 진입 여정에 오신 것을 환영합니다! 이 칼럼은 웹 개발에 관심이 있고 이제 막 프론트엔드 분야에 입문한 분들을 위해 맞춤 제작되었습니다. 당신이 완전한 초보자이든, 기본적인 지식을 갖춘 개발자이든, 여기에서는 체계적이고 친숙한 학습 플랫폼을 제공할 것입니다. 본 칼럼에서는 매일 질문과 답변 형식으로 업데이트하여, 선별된 프론트엔드 지식 포인트와 자주 묻는 질문에 대한 답변을 제시해 드립니다. Q&A 형식을 통해 프론트엔드 기술에 대한 독자들의 질문에 보다 직접적으로 답변하고, 모두가 점차 탄탄한 기반을 다질 수 있도록 돕고자 합니다. HTML, CSS, JavaScript 또는 일반적으로 사용되는 다양한 프레임워크와 도구이든, 우리는 개념을 간단하고 이해하기 쉬운 방식으로 설명하고, 배운 내용을 확고히 할 수 있는 실용적인 예와 연습을 제공합니다. 동시에 프런트엔드 개발에서 다양한 기술을 더 잘 이해하고 적용하는 데 도움이 되는 몇 가지 실용적인 팁과 모범 사례도 공유할 것입니다.

여기에 이미지 설명을 삽입하세요.

그뿐만 아니라, 여러분이 배운 지식을 실제 개발에 적용할 수 있도록 실용적인 프로젝트 튜토리얼도 정기적으로 출시할 예정입니다. 실제 프로젝트 실습을 통해 프론트엔드 개발의 워크플로우와 방법론을 더 잘 이해하고, 문제 해결과 독립적인 개발 능력을 키워나갈 수 있습니다. 우리는 지속적인 축적과 연습만이 프론트엔드 개발 기술을 진정으로 마스터할 수 있다고 믿습니다. 그러니 도전에 대비하고 이 프론트엔드 진입 여정을 용감하게 시작하세요! 귀하가 직업 변화를 원하든, 기술 향상을 원하든, 개인적인 관심 사항을 충족시키든, 우리는 귀하에게 최고의 학습 리소스와 지원을 제공하기 위해 최선을 다하고 있습니다. 웹 개발의 놀라운 세계를 함께 탐험해 보세요! 프론트엔드 입문 여정에 동참하여 뛰어난 프론트엔드 개발자가 되어보세요! 프런트엔드 여정을 시작해보자


⭐ JavaScript의 호이스팅 메커니즘

호이스팅은 변수 및 함수 선언의 범위와 접근성에 영향을 미치는 JavaScript의 메커니즘입니다. JavaScript 코드가 실행되기 전에 JavaScript 엔진은 변수 및 함수 선언을 해당 범위의 맨 위로 끌어올리지만 할당이 아닌 선언만 끌어올립니다.

이는 변수와 함수가 선언되기 전에 액세스할 수 있지만, 선언되기 전에 액세스하면 undefined값을 갖게 된다는 의미입니다.


⭐가변 프로모션

console.log(x); // 输出: undefined
var x = 5;

위 코드에서는 변수가 x선언되기 전에 액세스할 수 있도록 변수가 승격되지만 해당 값은 입니다 undefined.


⭐ 기능 프로모션

sayHello(); // 输出: Hello, world!
function sayHello() {
    
    
  console.log("Hello, world!");
}

이 예에서는 함수가 sayHello호이스팅되어 선언하기 전에 호출할 수 있습니다.


⭐ 주의사항

  1. 선언만 승격됩니다 . 변수 및 함수 선언만 승격되고 할당은 승격되지 않습니다. 예를 들어:

    console.log(x); // 输出: undefined
    x = 5;
    
  2. 변수 호이스팅의 차이점 : var로 선언된 변수는 포함된 함수 또는 전역 범위의 맨 위로 호이스팅됩니다. let및 를 사용하여 선언된 변수 const도 승격되지만 로 초기화되지 않고 undefined"TDZ(Temporal Dead Zone)"에 있게 됩니다.

    console.log(x); // 报错: Cannot access 'x' before initialization
    let x = 5;
    
  3. 함수 선언 대 함수 표현식 : 함수 선언은 완전히 승격되는 반면, 함수 표현식은 할당이 아닌 선언만 승격됩니다.

    // 函数声明
    sayHello(); // 输出: Hello, world!
    function sayHello() {
          
          
      console.log("Hello, world!");
    }
    
    // 函数表达式
    sayHi(); // 报错: sayHi is not a function
    var sayHi = function () {
          
          
      console.log("Hi!");
    };
    

호이스팅은 JavaScript에서 중요한 개념이며, 이를 이해하면 잠재적인 오류를 방지하고 코드가 실행되는 순서를 더 잘 이해할 수 있습니다. 그러나 코드를 이해하기 어려운 상황을 피하기 위해 주의해서 사용하세요.


⭐마지막에 쓰세요

이 칼럼은 폭넓은 독자층을 대상으로 하며, 프론트엔드를 처음 접하는 초보자나, 프론트엔드를 배우지 않았지만 프론트엔드에 관심이 있는 사람, 자신을 더 잘 보여주고 확장하고 싶은 백엔드 학생에게 적합합니다. 인터뷰 과정에서 프론트엔드 지식 포인트가 좀 있기 때문에, 프론트엔드에 대한 기본 지식을 갖추고 이 칼럼을 따라오신다면 부족한 부분을 찾아 메우는 데에도 큰 도움이 될 수 있습니다. 출력, 기사에 부족한 점이 있으면 홈페이지 왼쪽을 통해 저에게 연락하실 수 있습니다. , 함께 진행합시다. 동시에 여러 칼럼을 모두에게 추천합니다. 관심 있는 파트너는 구독할 수 있습니다. 아래 열에 대해서는 내 홈페이지로 이동하여 다른 열을 볼 수도 있습니다.

프론트엔드 게임(무료) 이 칼럼에서는 HTML, CSS, JavaScript에 대한 기본 지식을 활용하여 다양하고 흥미로운 페이지 게임을 함께 만들어 가며 창의성과 재미가 가득한 세계로 여러분을 안내할 것입니다. 당신이 초보자이거나 프론트엔드 개발 경험이 있다면 이 칼럼은 당신을 위한 것입니다. 기본적인 것부터 시작하여 페이지 게임을 구축하는 데 필요한 기술을 안내해 드립니다. 실제 사례와 연습을 통해 HTML을 사용하여 페이지 구조를 구축하고, CSS를 사용하여 게임 인터페이스를 아름답게 만들고, JavaScript를 사용하여 게임에 대화형 및 동적 효과를 추가하는 방법을 배우게 됩니다. 이 칼럼에서는 미로 게임, 벽돌 깨기, 뱀, 지뢰 찾기, 계산기, 비행기 전투, 틱택토, 퍼즐, 미로 등을 포함한 다양한 유형의 미니 게임을 다룰 것입니다. 각 프로젝트는 자세한 설명과 코드 예제를 통해 간결하고 명확한 단계로 구축 프로세스를 안내합니다. 동시에 페이지 성능과 사용자 경험을 개선하는 데 도움이 되는 몇 가지 최적화 팁과 모범 사례도 공유할 것입니다. 프런트엔드 기술을 연습할 흥미로운 프로젝트를 찾고 있거나 페이지 게임 개발에 관심이 있다면 프런트엔드 게임 칼럼이 최선의 선택이 될 것입니다. 프런트엔드 게임 칼럼을 구독하려면 클릭하세요.

여기에 이미지 설명을 삽입하세요.

Vue3 투명 튜토리얼 [0에서 1까지](유료) Vue3 투명 튜토리얼에 오신 것을 환영합니다! 이 칼럼은 Vue3와 관련된 포괄적인 기술 지식을 모든 사람에게 제공하는 것을 목표로 합니다. Vue2 경험이 있다면 이 칼럼을 통해 Vue3의 핵심 개념과 사용법을 익힐 수 있습니다. 우리는 처음부터 시작하여 완전한 Vue 애플리케이션을 구축하기 위해 단계별로 안내할 것입니다. 실제 사례와 연습을 통해 Vue3의 템플릿 구문, 구성 요소 개발, 상태 관리, 라우팅 및 기타 기능을 사용하는 방법을 배우게 됩니다. 또한 Vue3의 새로운 기능을 더 잘 이해하고 적용할 수 있도록 Composition API 및 Teleport와 같은 몇 가지 고급 기능을 소개합니다. 이 칼럼에서는 자세한 설명과 샘플 코드와 함께 각 프로젝트를 간결하고 명확한 단계로 안내하겠습니다. 동시에 Vue3 개발의 몇 가지 일반적인 문제와 솔루션을 공유하여 어려움을 극복하고 개발 효율성을 향상시키는 데 도움을 드릴 것입니다. Vue3를 심층적으로 배우고 싶거나 프런트엔드 프로젝트 구축에 대한 포괄적인 가이드가 필요한 경우 Vue3 철저한 튜토리얼 칼럼은 귀하에게 없어서는 안 될 리소스가 될 것입니다. Vue3 Transparent Tutorial [0부터 하나까지] 칼럼을 구독하려면 클릭하세요.

여기에 이미지 설명을 삽입하세요.

TypeScript 시작 가이드(무료)는 TypeScript 관련 기술을 빠르게 시작하고 숙달하는 데 도움을 주기 위해 고안된 칼럼입니다. 간결하고 명확한 언어와 풍부한 샘플 코드를 통해 TypeScript의 기본 개념, 구문 및 기능을 심도있게 설명합니다. 초보자이든 숙련된 개발자이든 여기에서 자신에게 적합한 학습 경로를 찾을 수 있습니다. 유형 주석, 인터페이스, 클래스와 같은 핵심 기능부터 모듈식 개발, 도구 구성, 공통 프런트엔드 프레임워크와의 통합에 이르기까지 모든 측면을 포괄적으로 다룹니다. 이 칼럼을 읽으면 JavaScript 코드의 안정성과 유지 관리 가능성을 향상시키고 프로젝트에 더 나은 코드 품질과 개발 효율성을 제공할 수 있습니다. 이 흥미롭고 도전적인 TypeScript 여행을 함께 시작합시다! TypeScript 시작 가이드 칼럼을 구독하려면 클릭하세요.

여기에 이미지 설명을 삽입하세요.

추천

출처blog.csdn.net/JHXL_/article/details/132844437