기술 모의 면접 학습법

제시되는 단답형 질문이나 본인이 작성한 프로젝트 기술 면접 질문에 대한 짧은 정답을 작성한다.


Q : 스코프에 대해서 설명해보세요. A : 스코프는 변수가 접근할 수 있는 범위입니다. 한 스코프 범위 내에서 외부 스코프의 변수에는 접근 가능하지만, 내부 스코프의 변수에는 접근이 불가능합니다.

예상되는 꼬리 질문을 스스로 준비한다.


Q: 자바스크립트에서 function scope, block scope의 차이는?

A: fuction scope는 함수 내부에 생성된 스코프입니다. 따라서 function scope로 인해 함수 내부에서 생성된 변수는 함수 내부에서만 접근이 가능합니다. block scope는 if문, for문 등과 블록 안에 생성된 스코프입니다. 따라서 block scope에서 생성된 변수는 블록 안에서만 접근이 가능합니다.

Q: 자바스크립트에서 lexical scope와 dynamic scope의 차이는?

A: 자바스크립트는 기본적으로 lexical scope를 따르는 언어입니다. lexical scope는 함수가 선언된 시점에 상위 스코프가 결정되는 것이고, dynamic scope는 함수가 호출된 시점에 상위 스코프가 결정되는 것입니다.

Q: var로 선언된 변수는 function scope, block scope중 어떤 scope를 가지는가?

A; var은 기본적으로 함수 스코프를 따르고 블록 스코프를 무시합니다. 따라서 if문, for문과 같은 블록스코프인 곳에서 선언이 되면 전역에서 접근이 가능합니다.

Q: 화살표 함수는 어떤 scope를 가지는가?

A: 화살표 함수는 함수 스코프가 아닌 블록 스코프를 따릅니다. fuction 키워드를 이용하여 함수를 선언하면 function scope이고 그 외에는 전부 block scope입니다.

Q: 자바스크립트에서 호이스팅이란 무엇을 의미합니까?

A: 자바스크립트 엔진이 코드를 인터프리팅을 하기 전에 컴파일을 하는데 이때 선언단계가 스코프의 꼭대기로 끌어올리는 작업을 의미합니다.

Q: 자바스크립트에서 클로저란 무엇입니까?

A: 클로저는 함수와 그 해당 함수의 렉시컬 스코프의 집합입니다.

Q: 자바스크립트는 객체지향 언어이지만 클래스 기반 언어가 아닙니다. 프로토 타입 기반 언어인데 프로토 타입이란 어떤 것을 의미합니까?

A: https://medium.com/@limsungmook/자바스크립트는-왜-프로토타입을-선택했을까-997f985adb42