호이스팅(Hoisting)
함수 안에 모든 선언들을 끌어올려서 함수 유효 범위 최상단에 선언하는 것
자바스크립트 parser가 함수실행 전에
변수,함수선언에 대한 정보를 내부적으로 끌어올려서 처리
유효범위
var 변수 선언 (let/const는 대상 아님)
함수 선언문 ( 함수 표현식 대상 아님)
// ex1)
console.log("test");
var name = "noca";
let name2 = "aaa";
// js parser 결과
var name;
console.log("test");
name = "naca";
let name2 = "aaa";
//ex2)
foo();
foo2();
function foo() { // 함수선언문
console.log("test");
}
var foo2 = function() { // 함수표현식
console.log("test2");
}2
// js parser 결과 !!!
var foo2;
function foo() {
consoe.log("test");
}
foo();
foo2(); // Uncaught TypeError: foo2 is not a function
foo2 = function() {
console.log("test2");
}
'DEV > javascript, jQuery' 카테고리의 다른 글
Daum 우편번호 서비스 사용시 에러 (0) | 2021.07.12 |
---|---|
queryString to json (ajax) (0) | 2021.05.07 |
[javascript] var, let, const 차이 ( 완벽 이해 ) (0) | 2020.11.20 |
javascript 성능향상 코드스타일 (0) | 2020.11.03 |
[javascript] Array (object) sort (0) | 2020.10.29 |