호이스팅 자바스크립트란?
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 defined
number1
에 대한 변수 선언은 하지 않았지만 왜 정답이 나왔을까요? 자바스크립트가 number1
변수에 대한 선언을 "마법처럼"만들어 맨 위로 이동하기 때문입니다. 간단한 용어 자바 스크립트에서 "이봐 당신은 값 number1
으로 초기화 3
하지만 당신은 어떤 선언도하지 않고 있습니다. 알았어 lazybones 내가 당신을 위해 그것을 할 것입니다 huufh 😩"number2
가 가장 혼란스럽습니다. 이미 변수를 초기화하고 선언했지만 왜 undefined
를 제공합니까?, hoisting only move Declaration?, 그것은 자바 스크립트 만 상단으로 number2
선언을 이동하고 초기화가 발생하기 때문에 의미합니다. console.log
후에 결과로 undefined
를 줄 것입니다.
Reference
이 문제에 관하여(호이스팅 자바스크립트란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/elukuro/what-is-hoisting-javascript--40gi텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)