본문 바로가기

TIL

TIL#61(var, let, const, Promise)

오늘 한일
  • var, let, const (JavaScript)
  • var

함수 외부에 선언 될 때의 범위는 전역, 함수 내에서 선언 될 때의 범위는 함수 범위이다.

재선언, 재할당이 가능하다. 이러한 이유 때문에 변수를 유연하게 사용할 수 있기는 하지만 기존의 선언해둔 변수와 중복되는 변수명을 사용 하는 경우 어느 부분에서 문제가 생기는지 찾기 어려우므로 ES6부터 이 점을 보안한 let과 const가 추가되었다.

호이스팅이 발생하지만 값 할당은 되지 않는다.

 

  • let

블록 범위의 스코프를 가지며 재선언은 불가능하지만 재할당은 가능하다.

호이스팅이 발생하지만, 초기화는 변수 선언 시점까지 지연되므로 선언 전에 접근하려고 하면 'ReferenceError'가 발생한다.

 

  • const

블록 범위의 스코프를 가지며 재선언, 재할당 모두 불가능하다.

호이스팅이 발생하지만, 초기화는 선언 시점까지 지연된다.

 

※호이스팅이란 함수 내부에 있는 선언들을 모두 끌어올려 해당 함수 유효 범위의 최상단에 선언하는 것을 뜻한다.

 

  • Promise

JavaScript에서 비동기 작업의 최종 완료 또는 실패를 나타내는 객체로 비동기 작업의 결과를 처리할 수 있는 방법을 제공한다.

  • 상태
  1. pending : 초기 상태로, 아직 완료되지 않은 상태이다.
  2. fulfilled : 작업이 성공적으로 완료된 상태이다.
  3. rejected : 작업이 실패한 상태이다.
  • 메서드
  1. then() : Promise가 fulfilled 상태가 되면 호출되는 함수를 등록한다. then은 결과 값을 전달받아 처리한다.
  2. catch() : Promise가 rejected 상태가 되면 호출되는 함수를 등록한다. catch는 에러를 전달받아 처리한다.
  3. finally() : Promise가 완료(fulfilled 또는 rejected) 되면 항상 호출되는 함수를 등록한다.

Promise는 비동기 작업을 보다 쉽게 관리할 수 있게 해주며, 콜백 지옥을 피할 수 있게 도와준다.

오늘의 TIP
  • 콜백 함수 : 다른 함수에 인자로 전달되는 함수이며, 외부 함수 내에서 일종의 루틴 또는 동작을 실행하기 위해 호출되는 함수를 뜻한다. 즉, 코드를 통해 명시적으로 호출하는 함수가 아니라, 어떤 이벤트가 발생했을때, 혹은 특정 시점에 도달했을 때에 시스템에서 호출하는 함수이다.

'TIL' 카테고리의 다른 글

TIL#63(화살표 함수)  (0) 2024.07.26
TIL#62(async/await, 호이스팅)  (0) 2024.07.26
TIL#60(캐시/대기열 - Redis)  (0) 2024.07.19
TIL#59(Endian)  (0) 2024.07.18
TIL#58(운영체제)  (0) 2024.07.16