노드(Node.js) - 2주차

임승혁·2022년 3월 6일
0
post-thumbnail

알아두어야 할 JavaScript

  1. 호출 스택 : 호출 순서대로 쌓이며, 역순으로 실행. 즉 LIFO구조(Last In First Out)

  2. 이벤트 구조 : 이벤트 발생 시, 호출할 콜백 함수들을 관리하고, 호출할 순서를 결정

    • 태스크 큐(Task Queue) : 이벤트 발생 후, 호출될 콜백 함수들이 기다리는 공간
    • 백그라운드 : 타이머나 I/O 작업 콜백, 이벤트 리스너들이 대기하는 공간

4 -> main이 먼저 실행되고, 그 다음에 setTimeout이 실행되므로 호출 스택에는 그림과 같이 스택이 쌓이게 된다. 그리고 setTimeout과 main 함수가 실행 완료 후, 호출 스택이 비워지면 이벤트 루프가 태스크 큐의 콜백을 호출 스택으로 올린다. (호출 스택이 비워져야 올림)
5 -> 호출 스택에 함수가 존재하면, 3초가 지난 후에도 run()은 태스크 큐에서 대기할 수 있다. (타이머 오차도 발생)
6 -> run 이 호출 스택에서 실행되고, 완료 후 호출 스택에서 나감, 이벤트 루프는 태스크 큐에 다음 함수가 들어올 때까지 대기한다. 이러한 태스크 큐는 여러 개 존재하며, 이들의 순서는 이벤트 루프가 결정한다.

  1. var, let, const 비교

  1. 템플릿 문자열 : 기존에는 '+'를 사용해서 문자열을 연결해서 사용했지만, 가독성을 떨어뜨리므로 `(백틱)을 사용이 가능하다.

  2. 객체 리터럴 : 훨씬 간결한 문법으로 객체 리터럴 표현이 가능

  3. 함수 호이스팅 : 함수 선언을 유효 scope의 최상단으로 올려 함수 선언 전에도 호출 가능.
    하지만, 의도치 않은 실수 유발이 가능하다. 여러 줄의 코드와 다른 사람과 함께 코드를 작성할 때, 같은 이름으로 된 함수를 서로 다른 사람이 작성해서 의도치 않은 기능이 작동되어 에러를 발생할 수 있다.

그리고 함수 표현식을 변수나 상수로 할당 가능하다. const, let으로 할당하여 호이스팅 방지

  1. 화살표 함수

    - 한 줄짜리 return 구문만 존재하는 함수는 return 생략 가능.
    - 1줄 짜리 함수는 {}를 ()로 변경이나 생략 가능.
    - 매개 변수가 하나면 매개변수의 () 생략 가능.

  1. 구조분해 할당
profile
한성공대생

0개의 댓글

관련 채용 정보