Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JQuery
- 자바
- Class
- jqgrid 개념
- implements
- spring
- mysql
- 개발자 이직
- JVM Heap
- Javascript
- 제이큐그리드
- 정보처리기사 합격
- ResponseBody
- jqGrid
- HTTP
- 트랜잭션
- 정보처리기사 필기
- 정처기 합격
- extends
- ModelAndView
- 스프링
- Where
- HTML
- Model
- 어노테이션
- SQL
- java
- ModelMap
- MariaDB
- View
Archives
- Today
- Total
크리스의 개발일기
호이스팅(hoisting)이란? 본문
WHAT is hoisting?
JavaScript에서 호이스팅(hoisting)이란,
인터프리터(고급 언어로 작성된 프로그램을 한 줄 단위로 받아들여 번역하고,
번역과 동시에 프로그램을 한 줄 단위로 즉시 실행시키는 프로그램)가
변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미한다.
function whoAreYou(name) {
console.log("나는 " + name + "입니다.");
}
whoAreYou("크리스");
/*
result : "나는 크리스입니다."
*/
whoAreYou("장크리스");
function whoAreYou(name) {
console.log("나는 " + name + "입니다.");
}
/*
result : "나는 장크리스입니다."
*/
호이스팅의 대상은 선언문만 가능하다.
JavaScript는 초기화를 제외한 선언만 호이스팅합니다.
변수를 먼저 사용하고 그 후에 선언 및 초기화가 나타나면,
사용하는 시점의 변수는 기본 초기화 상태(var 선언 시 undefined, 그 외에는 초기화하지 않음)입니다.
console.log(num);
var num; // 선언
num = 6; // 초기화
/*
result : undefined
호이스팅한 var 선언으로 인해 undefined 출력
*/
반면, 다음 예제는 선언 없이 초기화만 존재합니다.
따라서 호이스팅도 없고, 변수를 읽으려는 시도에서는 ReferenceError 예외가 발생합니다.
console.log(num); // result : ReferenceError
num = 6; // 초기화
출처 :
https://developer.mozilla.org/ko/docs/Glossary/Hoisting
(© 2005-2021 Mozilla and individual contributors. Content is available under these licenses.)
https://coding-factory.tistory.com/303
'Javascript' 카테고리의 다른 글
[$,JQuery] .attr()과 .prop()의 차이점 (0) | 2021.02.01 |
---|---|
[Javascript] window.onload()란? (0) | 2020.11.20 |
[Javascript] DOM이란 무엇인가? (0) | 2020.11.06 |
[Javascript] Ajax 개념과 목적, 장단점/ 동기, 비동기 방식 (0) | 2020.11.06 |
자바스크립트(js) 1. data types, let vs var, hoisting 기록 (0) | 2020.11.04 |
Comments