본문 바로가기

TIL

TIL#62(async/await, 호이스팅)

오늘 한일
  • async/await

JavaScript에서 비동기 코드를 더 직관적이고 간결하게 작성할 수 있게 해주는 문법이다. 프로미스 기반으로 동작하며, 비동기 함수의 결과를 처리하는데 사용된다.

 

  • async

함수 앞에 붙여서 그 함수를 비동기 함수로 만든다. 비동기 함수는 항상 프로미스를 반환한다.

 

  • await

async 함수 내부에서만 사용할 수 있으며 프로미스가 처리될 때까지 함수의 실행을 일시 정지한다. 프로미스가 해결되면 await은 프로미스의 결과 값을 반환하고 프로미스가 거부되면 await은 거부된 이유를 throw한다.

 

async/await의 장점은 비동기 코드를 동기 코드처럼 작성할 수 있어 가동성이 향상되고 에러 핸들링이 용이해진다.

 

  • 호이스팅

JavaScript의 변수 선언과 함수 선언이 스코프의 최상단으로 끌어올려지는 동작 방식이다. 실제 코드의 위치에 상관없이 변수와 함수 선언이 먼저 처리되는 것 처럼 동작된다. 이는 자바스크립트 엔진이 코드를 해석할 때 변수와 함수의 선언을 먼저 처리하기 때문에 발생한다.

 

  • 변수 호이스팅

변수 선언이 스코프의 최상단으로 끌어올려지지마느 변수 초기화는 원래 코드 위치에 남아있다.

  • 함수 호이스팅

함수 선언은 스코프의 최상단으로 끌어올려져 함수 선언 전에 호출할 수 있다.

 

오늘의 TIP
  • 변수의 선언과 변수의 초기화 사이의 변수에 접근할 수 없는 지점. 즉, 초기화되지 않은 변수가 있는 곳을 Temporal Dead Zone이라고 한다.

'TIL' 카테고리의 다른 글

TIL#64(정렬 알고리즘 JavaScript)  (0) 2024.07.30
TIL#63(화살표 함수)  (0) 2024.07.26
TIL#61(var, let, const, Promise)  (2) 2024.07.23
TIL#60(캐시/대기열 - Redis)  (0) 2024.07.19
TIL#59(Endian)  (0) 2024.07.18