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
- rev-basic 풀이
- 자바스크립트강의 후기
- 더오름
- 자바스크립트 강의
- 자바스크립트
- 드림핵 리버싱 풀이
- 제주ICT
- 인프런 강의 추천
- dreamhack reversing
- 강의 체험단 1기
- 위니브
- adb
- 제주코딩베이스캠프
- 리버싱 입문
- 리버싱핵심원리
- 리버싱 플래그
- 안드로이드 리버싱
- 티스토리챌린지
- 드림핵 리버싱
- 자바스크립트 강의 추천
- 리버싱 초보
- 안드로이드 adb start-server
- 리버싱
- 리버싱 스터디
- 오블완
- 드림핵 플래그
- adb 옵션
- 리버싱 핵심 원리
- 안드로이드 모바일 앱 모의해킹
- 안드로이드 adb
Archives
- Today
- Total
해보자고
[인프런] 호이스팅 본문
1. 호이스팅
- 아직 선언되지 않은 함수나 변수들을 해당 스코프의 맨 위로 끌어올려 사용하는(것 처럼 보이는) 작동 방식.
- 자바스크립트의 기본 성질
- 변수, 함수 선언 후 접근 하는 코드가 바람직함.
- 호이스팅 많이 발생하는 코드는 가독성이 좋지 않아 오류를 발생시킬 수 있음.
1. 함수 호이스팅
: 함수 선언의 유효 범위를 최상단으로 끌어올려서 작동하는 것.
print();
function print() {
console.log("Hello World!");
}
-> 자바스크립트 엔진이 print() 호출이 선언문보다 아래에 있다고 받아들임.
2. 변수 호이스팅
: 변수의 선언문을 스코프의 최상단으로 올려 해석하여 작동하는 것.
console.log(name);
var name = "cat";
// 자바스크립트가 해석한 코드
var name;
console.log(name);
name = "cat";
-> 따라서 변수에 값이 할당되지 않을 때 자동으로 할당되는 값인 undefined가 출력됨.
2.1 let과 const의 변수 호이스팅
-> 호이스팅이 발생하지 않는 게 아니라, 변수 스코프의 맨 위에서 초기화가 될 때까지 TDZ에 있기에(변수의 초기화가 완료될 때까지 TDZ에 있음. ) 호이스팅이 발생하지 않는 것 처럼 보임.
TDZ(Temporal Dead Zone)
: 일시적인 사각지대, 변수를 사용하는 것을 허용하지 않는 공간.
var vs let, const
var -> 변수 선언 완료시 메모리 공간 할당
let, const -> 변수가 초기화될때까지 메모리 공간 할당 X -> TDZ에 머무름.
'프로그래밍 > 자바스크립트' 카테고리의 다른 글
[인프런] 객체 (0) | 2024.12.06 |
---|---|
[인프런] 함수 표현식 (0) | 2024.08.31 |
[인프런] 스코프 (0) | 2024.08.18 |
[인프런] 웹 프론트엔드를 위한 자바스크립트 첫 걸음 - 함수, 전역변수와 지역변수 (0) | 2024.04.12 |
[인프런] 웹 프론트엔드를 위한 자바스크립트 첫 걸음 - if ~ else if, switch ~ case (0) | 2024.04.09 |