<기술면접질문>
var, let, const의 차이에 대해 알려주세요.
var는 함수 스코프를 가지며 변수의 재선언과 재할당이 가능합니다. let, const은 ES6부터 지원하는 블록 스코프를 가지며 변수의 재선언이 불가합니다. 둘의 차이점은 변수의 재할당 여부 입니다.
스코프: 모든 식별자는 자신이 선언된 위치에 따라 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위
함수 스코프: 변수는 호이스팅 되서 전역 또는 해당 함수에 지역변수로 선언.
블록 스코프:주어진 코드 블록({}) 안에서만 사용이 가능하며 밖에서는 접근할 수 없음.
Async/Await와 Promise의 차이에 대해 설명해주세요.
에러 핸들링 기능 여부와 코드의 가독성에서 차이가 있습니다. Promise는 비동기 로직 처리용 객체이며 then, catch 메서드로 에러 핸들링이 가능합니다.
Async / Await는 비동기 로직 처리용 키워드이며 try-catch 문으로 에러를 핸들링 해야합니다. Promise보다 Async / Await가 동기적인 로직처럼 직관적인 코드입니다.
ex)
//promise
// http://api.naver.com/weather/today 로 요청을 한다고 가정합시다.
axios.get('http://api.naver.com/weather/today')
.then(response => {
console.log('정상처리 되었습니다 : ' + response);
})
.catch(error => {
console.log('오류가 발생하였습니다 : ' + error);
})
.finally(()=>{
console.log('항상 실행되는 부분입니다!');
});
//async await
const getWeather = async () => {
try {
const response = axios.get('http://api.naver.com/weather/today');
console.log('정상처리 되었습니다 : ' + response);
} catch (error) {
console.log('오류가 발생하였습니다 : ' + error);
}
}