[항해99] TIL

41일차 (CS 7,8)

@kkkk_biiin 2023. 10. 13. 00:53
728x90

var, let, const의 차이점

 var은 ES6 문법 등장 이전에 변수를 선언하기 위해 주로 사용되었다. 그러나 var은 변수가 재선언될 때에도, 업데이트가 이루어진다는 문제점이 있었고, 이러한 문제를 해결하기 위해 ES6에서 let과 const가 도입되었다. let은 var과 유사하게 업데이트가 이루어진다. 하지만 var과 다른 점은 재선언 할 수 없다는 점이다. const는 두 변수와는 다르게 재선언과 업데이트 모두 안된다는 특징을 가지고 있다.

 

추가적으로 스코프에서도 차이점이 있는데, var은 전역범위, 함수 범위의 스코프를 가지고 있고, let과 const는 블록 스코프를 가진다.

(블록 스코프: {}로 바인딩 된 코드 청크)

 

 

Async/Await와 Promise의 차이점

 Promise는 비동기 연산을 나타내는 객체이다. 이 객체는 성공(resolve)과 실패(reject)라는 상태를 가질 수 있다. Promise는 .then()과 .catch() 메서드를 사용하여 성공 및 실패 시 콜백 함수를 처리하는 구조를 가진다.

 

 Async/Await는 Promise를 더 간결하고 가독성 좋게 작성할 수 있게 해주는 ES8의 문법이다. async 키워드로 선언된 함수 내에서 await 키워드를 사용하여 Promise의 결과를 기다릴 수 있으며, 예외 처리는 try... catch 문을 사용하여 처리한다.

 

 Promise는 여러 개의 .then()을 연결하여 체이닝을 할 수 있는데, 만약 에러가 발생한다면 어느 지점에서 에러가 발생했는지 찾기가 어렵다는 단점이 있다. 반면 async를 사용하게 되면 await를 개별적으로 줄 수 있기 때문에 어떤 지점에서 에러가 발생했는지 찾기 쉽다는 장점이 있다.

728x90