제너레이터코드 블록의 실행을 일시 중지했다가 필요한 시점에 재개할 수 있는 특수한 함수특징제너레이터 함수는 함수 호출자에게 함수 실행의 제어권을 양도할 수 있음제너레이터 함수는 함수 호출자와 함수 상태를 양뱡향으로 주고받을 수 있음제너레이터 함수를 호출하면 제너레이터 객체를 반환함 => 제너레이터 함수를 호출하면 함수 코드를 실행하는 것이 아니라 이터러블 이면서 동시에 이터레이터인 제너레이터 객체를 반환함 제너레이터 함수의 정의function* 키워드로 선언하나 이상의 yield 표현식을 포함화살표 함수로 정의 불가, new 연산자와 함께 생성자 함수로 호출 불가// 제너레이터 함수 선언문fuction* genDecFunc() { yield 1;}// 제너레이터 함수 표현식const getExpFunc..
Async
브라우저의 렌더링 과정브라우저는 HTML, CSS, 자바스크립트, 이미지, 폰트 파일 등 렌더링에 필요한 리소스를 요청하고 서버로부터 응답을 받음브라우저의 렌더링 엔진은 서버로부터 응답된 HTML, CSS를 파싱해 DOM과 CSSOM을 생성하고 이들을 결합해 렌더 트리를 생성함브라우저의 자바스크립트 엔진은 서버로부터 응답된 자바스크립트를 파싱해 AST(Abstract Syntax Tree)를 생성하고 바이트코드로 변환해 실행함. 이때 자바스크립트는 DOM API를 통해 DOM이나 CSSOM을 변경할 수 있음. 변경된 DOM과 CSSOM은 다시 렌더 트리로 결합됨렌더 트리를 기반으로 HTML 요소의 레이아웃(위치와 크기)를 계산하고 브라우저 화면에 HTML 요소를 페인팅함 파싱 : 프로그래밍 언어의 문법에..
동기와 비동기 동기 : 순차적으로 코드가 실행됨 비동기 : 순차적으로 코드가 실행되지 않음 Promise : 자바스크립트에서 제공하는 비동기를 간편하게 처리할 수 있도록 도와주는 객체 resolve 키워드를 사용해 실행 순서를 보장 const a () => { //인자로 콜백함수를 받지 않아도 됨 return new Promise(resolve=> { setTimeout(() => { console.log(1) resolve() //실행 순서 보장 },1000) }) } a().then(()=>{ b() }) 대기 pending : 초기 상태 이행 fulfilled : 작업이 성공적으로 안료된 상태를 의미. then을 통해 결과값 반환 가능 거부 rejected : 작업이 실패했음을 의미, catch로 ..