기술 면접 질문 리스트
- var, let, const의 차이에 대해 알려주세요.
- Async/Await와 Promise의 차이에 대해 설명해주세요.
- Arrow Function 이란 무엇인지 설명해주실 수 있을까요?
1. var, let, const의 차이에 대해 알려주세요.
답변: var 키워드는 변수의 중복선언이 가능해 재선언이 가능하고, 함수 레벨 스코프를 따르기 때문에 함수가 아닌 일반적인 코드 블록에서 사용될 경우 전역 변수로 선언이 됩니다. let 키워드는 변수의 중복 선언이 불가능하고, 자바스크립트의 모든 블록을 따르는 블록 레벨 스코프를 갖습니다. const는 선언과 동시에 초기화 단계 수행되어야 하고 그렇지 않을 경우 문법 에러가 발생합니다. let과 동일하게 블록 레벨 스코프를 따르며 객체를 값으로 갖는 const 변수는 재할당이 불가능할 뿐 객체의 프로퍼티의 변경, 추가, 삭제로 인한 변경은 가능하므로 불변함을 의미하지 않습니다.
TDZ, 호이스팅 내용 추가하기
2. Async/Await와 Promise의 차이에 대해 설명해주세요.
답변: Async/Await와 Promise는 모두 자바스크립트의 비동기 프로그래밍에 사용됩니다. 사용 방식과 가독성에 차이가 있습니다.비동기란 프로그램이 특정 작업을 완료하는 동안 다른 작업을 동시에 수행할 수 있는 처리 방식을 말합니다. Promise는 비동기 처리에 성공한 경우 resolve를 호출하여 'fullfilled'로, 실패했을 경우 reject를 호출하여 'rejected'의 상태로 변화합니다.
Promise 후속 처리메서드인 .then() .catch()를 사용하여 비동기 작업의 성공과 실패 결과를 전달받을 수 있으며, 여러개의 .then()을 연결하여 비동기 작업을 순차적으로 처리할 수 있습니다. 체이닝이 가능한 이유는 후속 처리 메서드는 Promise 객체를 반환하는 비동기 함수이기 때문입니다.
Async/Await는 비동기 코드를 마치 동기적인 흐름으로 작성할 수 있습니다. async 함수에서 await를 사용하면 해당 프로미스 처리 결과를 받기 전까지 함수의 실행을 일시적으로 중단합니다. try catch 블록을 사용하여 보다 쉽게 에러 핸들링이 가능합니다.
3. Arrow Function 이란 무엇인지 설명해주실 수 있을까요?
답변: 화살표 함수는 fucntion 키워드 대신 화살표를 사용하여 함수를 간결하게 정의할 수 있습니다. 화살표 함수에는 this 바인딩이 존재하지 않으며 화살표 함수의 this는 함수 호출 시 동적으로 결정되는 일반 함수와 달리 항상 상위 스코프의 this를 가리킵니다.이를 Lexical this라 합니다. 이러한 특징 때문에 this와 관련된 혼동을 줄일 수 있고, 이벤트 핸들러나 콜백함수에서 유용하게 사용됩니다. 또한, 불필요한 함수 키워드나 중괄호를 생략할 수 있어서 코드를 더 간단하게 작성할 수 있고, 가독성을 높여준다는 장점이 있습니다.
'면접준비' 카테고리의 다른 글
항해99 취업 리부트 코스 후기 (2) | 2024.03.10 |
---|---|
3/8 취준 기록 - 5일차 (0) | 2024.03.08 |
3/7 취준 기록 - 4일차 (0) | 2024.03.07 |
3/5 취준 기록 - 2일차 (3) | 2024.03.06 |
3/4 취준 기록 - 1일차 (7) | 2024.03.05 |