-
[면접 준비] async await 및 hoisting 설명하기면접 준비 2024. 7. 23. 09:34
학습 키워드: async, await, hoisting
2024-07-23 면접 카타 질문
1) async await이란 무엇인지 설명해주세요:
Async await은 ES6에서 등장한 문법이며 async는 비동기 함수를 나타내고, await은 비동기 함수를 동기적으로 처리하기 위해 promise의 결과 반환을 대기하는 키워드입니다. 이 키워드가 등장하기 전 Promise를 사용할 때는 promise 내부에서 비동기 처리가 완료된 뒤 then 구문이나 catch 구문 등을 사용해 callback 함수를 정의하게 되는데, await을 사용하면 이러한 작업 없이 동기 코드를 작성하는 것과 같이 알아보기 쉬운 코드를 작성할 수 있습니다. 한 가지 단점은 await 키워드가 async 함수 내에서만 사용할 수 있다는 점으로, 이 특징 때문에 async 함수 하나를 await하기 위해 다른 모든 동기 함수가 async 함수로 바뀌는 불상사가 생길 수도 있다는 점이 있습니다. 해당 상황에서 중간에 ES5의 Promise 문법을 하나 끼워넣으면 다른 함수들을 불필요하게 async 로 바꾸게 되는 것을 방지할 수 있습니다.
2) Hoisting이란 무엇인지 설명해주세요:
Interpreter가 코드를 읽을 때 변수, 함수 및 import를 최상단으로 끌어올리는 특징을 hoisting이라고 부릅니다. Hoisting이 이루어지면 본래 정의된 위치보다 먼저 access가 가능하게 되는 현상을 볼 수 있습니다. 변수로 예를들면 var 같은 경우 선언된 위치보다 위에서 console.log를 통해 값을 확인해도 해당 값을 조회할 수 있으며, let이나 const의 경우 본래라면 ReferenceError를 던져야 하지만 대신 undefined를 출력하는 경우가 모두 hoisting이 적용된 경우입니다.
--
728x90'면접 준비' 카테고리의 다른 글
[면접 준비] Node.js: event loop란? (0) 2024.07.30 [면접 준비] Node.js: single-threaded, non-blocking, asynchronous 기반 JS 런타임 (0) 2024.07.29 [면접 준비] 깊은 복사, 얕은 복사 (0) 2024.07.26 [면접 준비] arrow function 설명, Express 설명 및 대안 (0) 2024.07.25 [면접 준비] var, let, const 및 promise 설명 하기 (0) 2024.07.22