알아두어야 할 자바스트립트

알아두어야 할 자바스트립트

호출 스택 ( 함수의 호출 , 자료구조의 스택 )

호출 스택

Anonymous은 가상의 전역 컨텍스트(항상 있다고 생각하는게 좋음)

함수 호출 순서대로 쌓이고, 역순으로 실행됨

함수 실행이 완료되면 스택에서 빠짐

LIFO 구조라서 스택이라고 불림

이벤트 루프

이벤트 루프

이벤트 루프: 이벤트 발생(setTimeout 등) 시 호출할 콜백 함수들(위의 예제에서는 run)을 관리하고, 호출할 순서를 결정하는 역할

태스크 큐: 이벤트 발생 후 호출되어야 할 콜백 함수들이 순서대로 기다리는 공간

백그라운드: 타이머나 I/O 작업 콜백, 이벤트 리스너들이 대기하는 공간. 여러 작업이 동시에 실행될 수 있음

setTimeout과 anonymous가 실행 완료된 후 호출 스택이 완전히 비워지면, 이벤트 루프가 태스크 큐의 콜백을 호출 스택으로 올림

호출 스택에 함수가 많이 차 있으면 그것들을 처리하느라 3초가 지난 후에도 run 함수가 태스크 큐에서 대기하게 됨 -> 타이머가 정확하지 않을 수 있는 이유

프로미스

콜백 헬이라고 불리는 지저분한 자바스크립트 코드의 해결책

프로미스: 내용이 실행은 되었지만 결과를 아직 반환하지 않은 객체

Then을 붙이면 결과를 반환함

실행이 완료되지 않았으면 완료된 후에 Then 내부 함수가 실행됨

Resolve(성공리턴값) -> then으로 연결

Reject(실패리턴값) -> catch로 연결

Finally 부분은 무조건 실행됨 프로미스

호출스택, 이벤트루프, 기본적인 js문법(새롭게 바뀐 개정내용) 들을 알아보는 섹션이였는데, 호출스택은 기존에 알고리즘을 공부하면서(특히 재귀) 어느정도 이해를 하고있던 내용이라 부담없이 들었으며, 이벤트루프는 많이 중요하다 받아들였는데 이 부분은 기존의 안드로이드지식으로 이해를 하였다. background에서 동작과 실행되는 순서라든지 확실히 코딩은 다른분야라도 어디든 도움이 되는듯? 하지만 그 후의 js문법은 이미 js를 어느정도 알고있는 상태에서의 설명을 해주신다. js를 제대로 배우지않고 흝어보면서 개인적으로 간단한 웹 하나를 만들면서 사용해 본것이 끝이다. 그렇기에 js공부를 병행하면서 강의를 들어야할 듯

https://www.inflearn.com/course/%EB%85%B8%EB%93%9C-%EA%B5%90%EA%B3%BC%EC%84%9C/dashboard\

본글의 모든 내용은 위 강의를 토대로 작성됩니다.

from http://jhg3410.tistory.com/18 by ccl(A) rewrite - 2021-10-15 22:00:40