[기술면접] Mockterview - 1

한재창·2023년 6월 5일
0
post-thumbnail

var, let, const 에 대해 설명해주실 수 있을까요?

var, let는 변수 const는 상수라고 불리며 데이터를 저장하기 위해 이름을 할당한 메모리 공간입니다. var는 재선언, 재할당이 모두 가능하며 함수 스코프로 함수 내에서 모든 변수에 접근이 가능합니다. var는 선언한 뒤 자동으로 초기화되어 undefined의 값을 부여받습니다. 반면에 let과 const는 블록 스코프로 블록 외부에서 접근이 불가능하며 초기화가 되기 전에 코드에 참조할 수 없습니다. let은 재선언이 불가능하지만 재할당은 가능하며 const는 재선언, 재할당 둘 다 불가능합니다. let과 const는 ES6에 새로 나온 문법으로 var를 사용할 때 오류를 찾기 어려운 점 때문에 let과 const의 사용을 권장합니다.

Promise란 무엇인지 설명해주실 수 있을까요?

Promise는 특정 코드의 실행이 완료될때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성을 가진 비동기 처리에 사용되는 객체입니다. 비동기 처리의 단점을 보완하여 동기적으로 처리할 수 있게 도와줍니다. CallBack 함수를 사용해서 비동기 처리를 해줄 수 있지만 가독성을 높이기 위해 만들어진 문법이며, 대기 상태인 pending, 처리가 완료되서 프로미스가 값을 반환한 상태인 fulfilled, 처리가 실패한 상태인 rejected 상태가 있습니다.

Hoisting이란 무엇인지 설명해주실 수 있을까요?

Hoisting은 코드가 실행하기 전에 변수선언과 함수선언이 해당 스코프의 최상단으로 끌어올려진 것 같은 현상을 말합니다. 호이스팅이 발생하는 이유는 자바스크립트 엔진이 코드를 실행하기 전에 실행컨텍스트가 생성이 되는데, 이 실행컨텍스트가 코드를 원활하게 실행될 수 있도록 만들어주는 역할을 합니다.

실행컨텍스트는 생성단계와 실행단계가 있습니다. 그 중 코드를 읽기 전 생성단계에서 자신의 스코프 내에 선언된 변수와 함수들을 미리 스코프내에 등록시키는 작업이 진행됩니다. 이 원리 때문에 호이스팅이라는 현상이 발생하게 되는 것입니다.

let과 const가 호이스팅이 된 것 같지 않은 이유는 초기화 단계 이전인 선언단계까지만 진행된 상태이므로 선언문을 만나기 전까지 변수를 사용할 수 없습니다.

async/await 이란 무엇인지 설명해주실 수 있을까요?

Promise의 문법이 불편해서 나오게 된 개념입니다. async 함수가 실행되는 도중 await를 사용할 수 있고, await가 선언된 함수가 처리될 때 까지 기다린 다음 아래 코드가 실행되게 됩니다. 지금까지는 async함수 내에서만 await를 선언할 수 있었는데, ECMAScript 2022이후 최상단 스코프에서 await를 실행할 수 있게 되었습니다.

profile
취준 개발자

0개의 댓글