Javascript
-
[ JS ] Execution Context 실행 컨텍스트Javascript 2023. 11. 21. 20:45
실행 컨텍스트란 ? 실행 컨텍스트란 실행할 코드의 식별자, 스코프 등의 환경 정보를 관리한다. 컨텍스트를 콜스택에 쌓아올린 후 실행하여 코드의 환경과 실행 순서를 보장한다. 실행 컨텍스트는 호이스팅, 스코프 체인, 클로저, this binding 등 JS 중요 개념의 근간이 된다. 실행 컨텍스트 구성도 빨간 글씨는 해당 concept과 관련있는 개념을 표기함 Execution Context 실행 컨텍스트 역할 : 실행 컨텍스트는 실행할 코드의 변수와 스코프 같은 환경정보와 외부 참조 정보를 가지고 있다. 콜스택에 쌓이며 실행 순서를 보장한다. 콜스택의 최상단에 위치한 실행 컨텍스트는 running execution context이다. 구성 : Lexical Environment, Variable Envi..
-
[ JS ] 호이스팅Javascript 2023. 11. 17. 00:31
호이스팅 호이스팅이란, 선언문이 해당 스코프의 최상단으로 끌어올려진 듯 동작하는 현상을 의미한다. 변수 호이스팅과 함수 호이스팅으로 분류할 수 있다. 변수 호이스팅 변수 호이스팅에서는 var 키워드 선언과 let, const 키워드 선언한 경우 차이가 있다. var 선언문 이전에 해당 변수를 참조할 경우 undefined를 반환한다. let, const 선언문 이전에 해당 변수를 참조할 경우 Reference Error 발생한다. let, const 선언문은 호이스팅이 발생하지 않는 것처럼 보이지만, var과 동일하게 호이스팅이 발생한다. let hoisting = 1; { console.log(hoisting); // Reference Error let hoisting; } 호이스팅이 발생하지 않는다면..
-
[ JS ] PromiseJavascript 2023. 6. 13. 12:58
Promise ? 프로미스는 비동기 작업을 편리하게 처리할 수 있도록 ES6부터 도입된 기능입니다. 즉, 자바스크립트 비동기 처리에 사용되는 객체입니다. 프로미스 도입 이전에 콜백 함수로 비동기 처리를 하면 Callback Hell을 직면했습니다. 이러한 문제점을 Promise를 사용함으로써 해결할 수 있습니다. - Callback Hell const printNumber = (number, cb) => { setTimeout(() => { console.log(number); if (cb) { cb(number + 1); } }, 1000); }; printNumber(1, (number) => { printNumber(number, (number) => { printNumber(number, (num..