자바스크립트 인터프리터가 함수의 선언, 할당, 실행을 나눠해서 모든 선언이 코드의 선두로 끌어올려진 것처럼 동작하는 현상의 개념 즉, 자바스크립트 엔진이 실행컨텍스트가 활성화 될 때 변수정보를 수집하는데 이때 실제 끌어올려지지는 않았지만 수집과정에서 엔진이 수집된 정보를 토대로 변수들을 알고 있기 때문에 끌어올려진 것으로 간주하는 개념 설명보기 Q. var, let 둘 다 호이스팅이 된다? - 정답은 둘 다 호이스팅되나 동작때문에 var만 실행 시 에러가 나지 않는다. 이때문에 var만 호이스팅된다고 착각할 수 있다. 설명 var는 선언과 할당을 동시에 실행하므로 호이스팅되었을때, undefined가 메모리에 저장된다. let은 선언과 할당을 별도로 실행한다. 따라서 호이스팅되었을때, 선언은 되었지만 할..
var va let va const var 함수 스코프 함수 스코프의 최상단으로 호이스팅 선언 후 할당없이 호출하면 undefined (선언과 동시에 undefined로 초기화되기 때문) strict mode가 아닐때, 글로벌 스코프에서 선언 시 글로벌 객체에 바인딩 재선언 가능 재할당 가능 let 블록 스코프 블록 스코프의 최상단으로 호이스팅 선언 후 할당없이 호출하면 ReferenceError (이것을 TDZ(Temporal Dead Zone)이라함, 선언은 했지만 참고할 수 없는 사각지대) strict mode가 아닐때, 글로벌 스코프에서 선언해도 글로벌 객체에 바인딩되지 않음 재선언 불가능 재할당 가능 const 블록 스코프 블록 스코프의 최상단으로 호이스팅 선언 후 할당없이 호출하면 Refere..
let, const와 블록 레벨 스코프 ES6부터 let, const를 사용하게 되는데, var와는 여러가지 차이가 있다. 선언은 프로그래밍에서 필수기때문에 var와 let, const차이를 이해하고 넘어가지 않으면 많은 프로그래밍적 오류를 발생시킬수 있다. 변수 호이스팅 단계 선언단계(Declaration phase) 변수를 실행시키는 실행 컨텍스트의 변수 객체에 등록, 이 객체는 스코프가 참조하는 대상이됨 초기화단계(Initialization phase) 변수 객체에 등록된 변수를 위한 공간을 메모리에 확보 - 변수는 undefined로 초기화됨 할당 단계(Assignment phase) undefined로 초기화 된 변수에 실제 값 할당 var var 생략 시 전역변수로 선언 의도하지 않게 선언된 ..
호이스팅(Hoisting) 클로저같은 문법들의 효용성을 이해하기위해서 자바스크립트가 가졌던 특징입니다. var나 let, const로 정의된 변수나 함수선언문, 함수표현식이 유효범위의 최상단으로 끌어올려지는 것처럼 보여지는현상을 말합니다. 최상단으로 끌어올려지는 것처럼이라고 설명한 이유는 가상의 개념으로 설명하는 것이 좀 더 이해의 측면에 유리하기 때문입니다. 정확히 말하면 실행 컨텍스트가 활성화 되었을때 해당 영역에서 변수의 이름을 메모리에 먼저 수집하는 현상으로 인해 발생하는 현상입니다. 즉, 가상의 개념에서는 이해를 돕기위해 호이스팅을 '최상단으로 끌어올려진다'라고 말하지만 코드의 위치는 변하지 않습니다. 간단히 말하면, '유효범위의 코드가 실행되기 전 메모리에 먼저 저장했던 선언문을 사용할 수 있..
- Total
- Today
- Yesterday
- 브라우저
- 차이
- 메서드
- 프론트엔드
- css
- 뷰
- Study
- JS
- 타입스크립트
- frontend
- TypeScript
- jQuery
- 통신
- 제이쿼리
- 아티클
- vue.js
- 리액트
- 기초
- html
- 제로초
- 프로젝트
- React
- 코딩애플
- Method
- 공부
- VUE
- 자바스크립트
- JavaScript
- Article
- 강의
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |