Jun 개발노트

코드스피치 자바스크립트 단어정리(초기)

2020-04-01

코드스피치 자바스크립트 단어정리(초기)

블록킹 동기적인 명령을 실행시키면 명령이 종료되기전까지 cpu는 점유가 되기때문에 다른 명령을 실행시키지 못하는 상태를 블록킹

클로져 함수가 생성될때 밖에 있는 변수를 캡쳐링하여 사용한다. 이러한 변수를 자유변수 = 프리벨류 자유변수가 잡혀서 사용되는 공간을 클로져 원래 함수는 인자와 지역변수만 사용할 수 있는데, 그게 닫혀서 사용되는 것

조건문 IF는 플로우를 나누어주는것이며, IF문 안에 있는것을 따로 빼내어 함수나 클래스로 나누어주는것이 좋다

자바스크립트는 싱글쓰레드? Main UI Thread I : 자바스크립트를 싱글쓰레드로 지칭하는 것 Background Thred N : API, 콜백등 WEB Worker Thread : HTML5 지원 => Main UI Thread가 프레임별로 실행하기 때문에 싱글쓰레드라고 하고 Backgroud / Web worker 쓰레드가 실행한 결과값을 다음 / 대기 프레임에 넘겨서 Main쓰레드가 그걸 가져서 화면에 그려준다.

SYNC : 서브루틴이 즉시 값을 반환함 => return을 통해서 값을 바로 반환함

  • BLOCK : 즉시 플로우제어권을 반환하지 않음(nomal / legacy API) => 우리가 짜는 코드의 대부분이다.
  • NON BLOCK : 즉시 플로우제어권을 반환함 (old API / IOCP, Future, img.complete)

ASYNC : 서브루틴이 콜백을 통해 값을 반환함 => 콜백함수가 매개변수로 인자를 받아서 콜백 함수의 결과값을 반환함

  • BLOCK : Trap
  • NON BLOCK : 즉시 플로우제어권을 반환함(modern API)

Promise(ES 5) 비동기 작업같은 경우 제어권이 결과가 오기전까지 우리에게 있는것이 아니라서 수동적이다. 그래서 Promise를 통해서 결과를 받아오고 필요로 할때 then을 통해서 결과를 사용할 수 있다.

Async(ES 7) Promise기반의 결과값을 바로 받을수 있다. 하지만 제어권이 비동기적인 작업만 처리할수있어서 Generator Async Await이 나옴