면접대비
[면접대비] 변수, Promise, Async/await
note-for-development
2024. 4. 2. 09:46
- var, let, const의 차이에 대해 알려주세요.
- keyword: 호이스팅 스코프(Lexical Scope)
- var은 재선언과 재할당이 모두 가능하다. let은 재선언은 불가능하고 재할당은 가능하다. const는 재선언과 재할당이 모두 불가능하다. 또한 var, let은 초기 값을 입력하지 않아도 되지만 const는 선언할 때 값을 입력해야 한다.
- 호이스팅이 발생하면 세가지 변수의 선언 모두 최상단에 위치한다. 그러나 var은 undefined로 정의되나 let과 const는 undefined로 정의되지 않으며 정의되기 전에 사용하면 오류가 발생한다는 차이점이 있다.
- Async/Await와 Promise의 차이에 대해 설명해주세요.
- keyword: 콜백 헬(callback hell) Async/await 코드 스타일에 이점
- 외부 API와 통신하는 경우 데이터가 불러와지는데 시간이 걸린다. 또한 데이터를 가공하는데 여러 단계의 API 통신이 필요한 경우가 있다. 이 경우 이전 API 통신의 결과를 받고 다음 단계로 진행하는데, 이것을 비동기 처리라고 한다.
- 비동기 처리를 할 수 있는 방법은 세가지가 있다. 함수 내에 함수를 다시 선언하는 Callback은 꼬리를 무는 방식으로 코드가 이어지는 콜백 지옥을 생성한다는 단점이 있다.
- Promise는 결과가 promise 객체에 저장되며 진행중(pending)/완료(fulfilled)/오류(rejected)의 상태를 반환한다. 데이터의 관리가 더 쉽지만 에러 처리가 번거로운 단점은 남아있다.
- async/await는 await 이후의 함수를 비동기로 실행하고, 결과의 오류를 try/catch를 사용하여 관리할 수 있다는 이점이 있다.