반응형
1. 호이스팅이란?
영어 자체의 의미로서 끌어올리기 라는 뜻으로, 변수의 선언(할당이아님)이 최상단으로 끌어올려지는 것을 의미한다 함수 내부의 변수는 함수의 최상단으로, 함수 외부의 변수는 전역 변수로 끌어올려진다.
2. 호이스팅 예시
만약 다음과 같은 예시가 있다면 결과로 error가 발생한다고 생각할 것이다. 하지만 결과는 undeifiend, 10이다 이유는 아래와 같다.
function example(){
console.log(test);
var test = 10;
console.log(test);
}
자바스크립트가 var test 즉 선언 부분을 함수의 최상단으로 끌어올리기 때문에 다음과 같이 코드가 실제로 실행되고 에러가 아닌 undefined가 발생한다.
function example(){
var test;
console.log(test);
test = 10;
console.log(test);
}
다음과 같은 함수 도 호이스팅에 의해 사용 가능하다
example();
function example(){
console.log('test');
}
호이스팅에 의해 다음과 같이 전역으로 함수가 선언되므로 사용 가능하다
function example(){
console.log('test');
}
example();
하지만 다음과 같이 변수로 선언할 경우는 사용할 수 없다.
example();
var example = function(){
console.log('test');
}
다음과 같이 호이스팅 되기 때문이다.
var exaple;
example();
example = function(){
console.log('test');
}
반응형
'프로그래밍 > NodeJS' 카테고리의 다른 글
[Javascript] #5 var let const 차이 구분하기 (0) | 2020.05.20 |
---|---|
[Node.JS / Express 강의] #4 비동기 처리 란? / Promise 란? / async & await란? (0) | 2020.02.16 |
[Node.JS / Express 강의] #3 express-session, session-store 설치 및 사용하기 / 세션, 쿠키, 로그인하기 (0) | 2020.01.21 |
[Node.JS / Express 강의] #2 Express 설명 및 설치방법 (0) | 2019.11.12 |
[Node.JS / Express 강의] #1 Node.JS 설명 및 설치 방법 (0) | 2019.11.05 |