Elice SW 2/TIL28 DAY 18 - TIL Promise promise API는 비동기 API 중 하나 Task Queue이 아닌 Job Queue microtask Queue를 사용 (잡 큐는 태스크보다 우선순위가 높음) 비동기 작업을 표현하는 JS객체 비동기 작업의 진행(Pending ), 성공(Fulfilled ), 실패(Rejected) 상태를 표현 비동기 처리의 순서를 표현할 수 있음 Pending 우리가 new Promise(callback) 메서드를 호출하면 기본적으로 Pending상태 callback함수는 (resolve,reject) 두 인자를 받음 new Promise((resolve, reject) => {}); Fullfilled위에서 인자로 보내줬던 resolve가 아래와 같이 실행되면 Fullfilled 상태가 된다. n.. 2022. 4. 29. DAY 17 - TIL JS 제어 흐름 JS는 다른 멀티스레드 프로그래밍 언어(JAVA/C++)와 다른 방식으로 비동기 동작을 처리 JS엔진은 하나의 메인 스레드로 구성 메인 스레드는 코드를 읽어 한 줄씩 실행되고 브라우저 환경에서 유저 이벤트를 처리하고 화면을 그림 동기적 제어 흐름 동기적 제어 흐름은 현재 실행 중인 코드가 종료되기 전까지 다음 줄의 코드를 실행 하지 않는 것 분기문, 반목문 , 함수 호출 등이 동기적으로 실행 싱글 스레드 환경에서 메인 스레드를 긴 시간 점유시, 프로그램이 멈춤 멀티 스레드 환경에서는 메인 스레드를 긴 시간 점유해도 프로그램이 멈추지 않음 비동기적 제어 흐름 비동기적 제어 흐름은 현재 실행 중인 코드가 종료되기 전에 다음 줄의 코드를 실행하는 것 프로미스, 콜백 함수를 호출하는 함수 등은 .. 2022. 4. 28. DAY 16 - TIL 콜백 함수 콜백 함수는 파라미터로 함수를 전달받아, 함수의 내부에서 실행하는 함수 let names = ["jaeku", "jonghyun", "sunbee"]; names.forEach(function(x){ console.log(x) }); /* output jaeku jonghyun sunbee */ setTimeout(){} setTimeout(() => {console.log("5초후에 실행됩니다")}, 5000); setTimeout(함수,시간) 메서드는 뒤에 특정 시간이 만료된 후 함수나 지정된 코드 조각을 실행하는 타이머를 설정 setTimeout은 비동기 함수이므로 실행 순서와 상관없이 지정한 시간이 만료될 때 결과값을 반환 Debouncing 연속으로 호출되는 함수들 중에 마지막에 호.. 2022. 4. 27. DAY 15 - TIL JS 엔진 JS 엔진은 JS 코드를 읽어 실행하는 프로그램 작성한 JS 코드는 JS엔진을 통해 파싱되고 실행 크롬 브라우저의 경우 V8 엔진(구글 JS 엔진)을 사용 -node.js는 브라우저 외의 환경에서 JS 코드를 실행하도록 하는 프로그램 -node.js는 여러 프로그램으로 구성되며, JS 코드를 읽는 프로그램으로 V8 사용 -브라우저 환경과 node.js 환경은 같은 JS 코드를 작성해도 다르게 동작 JS 코드 실행 JS 엔진은 코드 실행 전 실행 컨텍스트를 생성 (코드 컴파일) 실행 컨텍스트는 생성 단계/실행 단계를 통해 생성 생성 단계에서 JS엔진은 변수 선언을 읽음 실행 단계에서 JS엔진은 변수 값을 할당 렉시컬 환경 함수의 렉시컬 환경은 함수가 사용하는 변수들을 둘러싼 환경을 의미 특정 변.. 2022. 4. 26. 이전 1 2 3 4 5 6 7 다음