게양
함수 선언 호이스팅
발생하는 각 함수 선언(
function myFunc()
)에 대해 해당 함수에 대한 포인터 역할을 하는 변수 객체에 속성이 생성됩니다. 이 포인터를 사용하면 선언되기 전에 코드에서 함수를 호출할 수 있습니다. 콘솔에서 아래 코드를 시도하십시오.myFunc(10);
function myFunc(num) {
console.log(`Your number is ` + num)
};
함수 표현식은 변수로 취급된다는 점을 언급할 가치가 있습니다. 선언 전에 함수 표현식을 호출하면 함수가 실행되지 않습니다.
runCode();
var runCode = () => {
console.log("I'm a variable, that points to a function. I don't get defined until execution.")
}
변수 선언 호이스팅
브라우저 엔진은 변수 선언도 찾습니다. 각 변수 선언에 대해 속성이 변수 개체에 생성되고 (사용된 키워드에 따라) 정의되지 않음으로 설정됩니다.
var
var
를 사용하여 변수를 선언하면 호이스팅 시 해당 변수가 undefined
로 설정됩니다. 이렇게 하면 선언하기 전에 변수를 호출할 수 있습니다. 물론 값은 undefined
입니다. 콘솔에서 아래 코드를 시도하십시오.console.log(age);
var age = 23;
console.log(age);
상수 && 하자
const
또는 let
를 사용하여 변수를 선언하면 포인터가 정상적으로 생성되지만 변수는 초기화되지 않습니다(일명 undefined
로 설정됨). 변수를 호출하면 Uncaught ReferenceError
가 표시됩니다.
console.log( cat, dog );
const cat = "Ozma";
let dog = "Pippin";
게양이하지 않는 것.
a strict definition of hoisting suggests that variable and function declarations are physically moved to the top of your code, but this is not in fact what happens. Instead, the variable and function declarations are put into memory during the compile phase, but stay exactly where you typed them in your code.
From the MDN
표지 이미지: 호이스팅 검색 중 발견한 멋진 사진 creative commons
Boston Public Library의 "Great hoists, Hulett and Brown electric at work"은 CC BY 2.0에 따라 사용이 허가되었습니다.
Reference
이 문제에 관하여(게양), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/javila35/hoisting-4b80텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)