-
[면접 준비] var, let, const 및 promise 설명 하기면접 준비 2024. 7. 22. 09:41
학습 키워드: var, let, const, promise, context
2024-07-22 면접 카타 질문
1) var, let, const 에 대해 설명해주세요:
var, let, const는 javascript에서 사용되는 변수 선언 키워드입니다. 먼저 const는 상수 선언으로, 한 번 선언된 이후에 해당 값을 다른 것으로 대체하는 것이 불가능하게 되어있습니다. 예를들어 const a = { foo:'bar' } 같은 식으로 선언했다면, 이후 a = { greeting: 'Hello, world!' } 같은 식으로 재 선언이 불가능합니다. 하지만 이미 할당된 key-value 객체나 클래스 인스턴스, 배열 등의 내용물을 추가하거나 수정하는 것은 가능합니다.
var과 let은 언뜻 비슷해 보일 수 있으나, 실제론 아주 큰 핵심 차이점이 존재합니다. 먼저 let의 경우 전통적인 프로그래밍 방식과 동일하게 변수가 선언된 위치의 context 및 하위 context에서만 사용될 수 있으며, hoisting이 적용되어도 실제 선언된 위치까지 아직 도달하지 않았다면 값이 undefined로 나타납니다. 반면에 var은 context에 상관없이 접근이 가능하며, hoisting이 적용되었을 때 실제 선언 위치와 관계없이 해당 값을 바로 사용할 수 있다는 차이가 있습니다. 예를 들면, console.log(temp); 이후에 var temp = "Hello, world!"; 와 같이 선언했을 때, let이었다면 콘솔에 undefined가 출력되겠지만, var의 경우는 temp가 hoisting 되면서 'Hello, world!' 가 출력됩니다.
또한 함수의 내부 스코프에서 외부 스코프에 있는 변수와 동일한 이름으로 재선언 했을 때 let이었다면 에디터 상에서 오류를 탐지하지만 var은 이런 식의 재선언이 허용되며, 함수 내부 context의 var 값을 바깥 context에서도 그대로 사용할 수 있다는 차이가 있습니다.2) Promise란 무엇인지 설명해주세요:
Promise는 JavaScript에서 비동기 작업의 동기적 처리를 담당하는 객체입니다. 처리 상황에 따라 pending, fulfilled, rejected의 상태를 가지게 되고, 이어지는 then 구문에서 비동기 결과에 대해 resolve나 reject callback을 이용하여 상태 처리를 해줄 수 있습니다. 또한 catch 구문을 이용하여 에러 발생 시 후처리를 해줄 수 있습니다.
--
REFERENCES:
> MDN, 'var'
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 [면접 준비] async await 및 hoisting 설명하기 (0) 2024.07.23