호이스팅 자바스크립트란?

3096 단어 javascriptbeginners
짧은 대답: 호이스팅은 선언을 맨 위로 이동시키는 자바스크립트 동작입니다.

yourName="Jiwoo";
console.log(yourName);
var yourName;


여기서 실제로 일어나는 일은 컴파일 단계에서 자바스크립트가 변수 선언을 메모리에 저장하는 것입니다. 시각적으로는 다음과 같습니다.

var yourName;
yourName="Jiwoo";
console.log(yourName);


좋아, 그럼 다른 예를 들어보자

number1 = 3;
console.log('number 1', number1);
console.log('number 2', number2);
console.log('number 3', number3);
var number2 = 3;


// output
// number 1 3
// number 2 undefined
// Uncaught ReferenceError: number3 is not defined



대체 여기에서 무슨 일이 일어나고 있는 걸까요?
variable3에 대한 선언 및 초기화가 없으므로 결과 Uncaught ReferenceError: number3 is not definednumber1 에 대한 변수 선언은 하지 않았지만 왜 정답이 나왔을까요? 자바스크립트가 number1 변수에 대한 선언을 "마법처럼"만들어 맨 위로 이동하기 때문입니다. 간단한 용어 자바 스크립트에서 "이봐 당신은 값 number1으로 초기화 3하지만 당신은 어떤 선언도하지 않고 있습니다. 알았어 lazybones 내가 당신을 위해 그것을 할 것입니다 huufh 😩"
number2가 가장 혼란스럽습니다. 이미 변수를 초기화하고 선언했지만 왜 undefined를 제공합니까?, hoisting only move Declaration?, 그것은 자바 스크립트 만 상단으로 number2 선언을 이동하고 초기화가 발생하기 때문에 의미합니다. console.log 후에 결과로 undefined를 줄 것입니다.

좋은 웹페이지 즐겨찾기