TIL을 매일 기록하며 프로젝트를 진행하면 체계적으로 개발할 수 있을 것 같다.
var
, let
, const
에 대해 설명해주세요.var
, let
, const
는 JavaScript에서 변수를 선언할 때 사용하는 키워드입니다.
var
undefined
로 초기화됨 var
로 선언된 변수는 의도치 않은 재할당이 발생할 수 있음 let
TDZ(Temporal Dead Zone)
에 머물러 참조할 경우 에러 발생 const
📌 결론
변수 선언 시 기본적으로 const
를 사용하고, 값이 변경될 필요가 있을 경우 let
을 사용하는 것이 좋습니다. var
는 사용하지 않는 것이 권장됩니다.
Promise
란 무엇인지 설명해주세요.Promise
는 JavaScript에서 비동기 작업을 처리할 때 사용되는 객체로, 미래에 완료될(또는 실패할) 작업을 나타냅니다.
.then()
, .catch()
, .finally()
로 처리 가능 pending
→ fulfilled
또는 rejected
상태로 변환됨 then()
을 사용하여 비동기 작업의 성공 결과를 처리하고, catch()
를 통해 에러를 처리할 수 있음 const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("작업 완료!");
}, 2000);
});
myPromise
.then(result => console.log(result)) // "작업 완료!" 출력
.catch(error => console.error(error));
📌 결론
Promise
는 콜백 지옥(Callback Hell)을 방지하고, 비동기 코드의 가독성을 향상시킵니다.
async/await
이란 무엇인지 설명해주세요.async/await
는 Promise
를 보다 간결하고 가독성 좋게 사용할 수 있도록 도와주는 ES8(ES2017) 문법입니다.
async
키워드를 함수 앞에 붙이면 해당 함수는 Promise
를 반환하는 비동기 함수가 됨 await
키워드는 Promise
가 완료될 때까지 기다린 후 값을 반환함 try...catch
문을 사용하여 Promise
의 에러 처리를 간단하게 할 수 있음 async function fetchData() {
try {
let response = await fetch("https://jsonplaceholder.typicode.com/todos/1");
let data = await response.json();
console.log(data);
} catch (error) {
console.error("에러 발생:", error);
}
}
fetchData();
📌 결론
async/await
는 Promise
를 더욱 직관적으로 사용할 수 있도록 하며, 동기적인 코드처럼 보이게 만들어 가독성을 높여줍니다.