231019_TIL

고병옥·2023년 10월 19일
1

콜백지옥 ..
콜백 함수를 익명 함수(아래 이미지로 살짝 보시면…)로 전달하는 과정이 반복되어 코드의 들여쓰기 수준이 헬 수준인 경우를 말해요!

비동기적인 작업을 동기적으로(동기적인 것 처럼 보이도록) 처리해주는 장치를 계속해서 마련해주고 있어요. Promise, Generator(ES6), async/await(ES7)같은 것들이죠.

비동기 작업의 동기적 표현이 필요합니다.

Promise는 비동기 처리에 대해, 처리가 끝나면 알려달라는 ‘약속’이에요.

new Promise resolve reject

DOM Document(HTML 파일)를 Javascript가 알아먹을 수 있는 Object 형태로 Modeling 한 것이에요(2-c과정의 결과물)

Class ES6에서야 도입
생성자 constructor
상속 extends
getter setter : get width() {return this._width}
set width(value) { //검증이 들어감 this._width = value}

closure 클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합니다??

  1. 클로저와 렉시컬 환경(LexicalEnvironment)
    1. 외부 함수보다 중접 함수가 더 오래 유지되는 경우, 중첩 함수는 이미 생명 주기가 종료한 외부 함수의 변수를 (여전히) 참조할 수 있다. ← 이 개념에서 중첩 함수가 바로 클로저에요

예제로 이해
// 카운트 상태 변경 함수 #2
const increase = function () {
// 카운트 상태 변수
let num = 0;

// 카운트 상태를 1만큼 증가시킨다.
return ++num;
};

// 이전 상태값을 유지 못함
console.log(increase()); //1
console.log(increase()); //1
console.log(increase()); //1

------------------->
// 카운트 상태 변경 함수 #3
const increase = (function () {
// 카운트 상태 변수
let num = 0;

// 클로저
return function () {
return ++num;
};
})();

// 이전 상태값을 유지
console.log(increase()); //1
console.log(increase()); //2
console.log(increase()); //3

캡슐화와 은닉

profile
천천히 그리고 단단하게

1개의 댓글

comment-user-thumbnail
2023년 10월 19일

진도 따라잡느라 고생하셨습니다!!

답글 달기