dev

기술 면접 준비하기 - 자바스크립트

Stella Yu 2018. 7. 4. 00:53

면접을 앞두고 그동안 헷갈렸던 개념들을 다시 정리해 보았다.

(혹시나 틀린 부분이 있다면 댓글 주세요!)




==와 ===의 차이점을 설명하세요.

== 는 자동 형변환 이후 체크, ===는 형변환 없이 그대로 체크합니다.


undefined와 null의 차이를 설명하세요.

undefined는 변수가 정의되었지만 아무 값도 할당받지 않은 상태이고, null은 null이라는 빈 값을 할당한 상태입니다. (참고로 null은 자료형 중 하나로, 비어있는 변수임.)


호이스팅(Hoisting)에 대해서 설명하세요.

변수 선언문, 변수 초기화를 무조건 함수 최상단으로 끌어올리는 것입니다. 

선언이나 초기화시만 적용되고 변수의 값은 끌어올리지 못합니다.


프로토타입(Prototype)에 대해서 설명하세요.

자바스크립트는 프로토타입 기반 언어입니다. 

프로토타입 언어는 객체 원형인 프로토타입을 이용해서 새로운 객체를 만들어내는데, 이렇게 생성된 객체 역시 또 다른 객체의 원형이 됩니다. 

이때 만들어진 객체 안에 프로토타입 오브젝트와 링크(__proto__)가 숨겨져 있는데, 이걸 통틀어 프로토타입이라고 합니다.


프로토타입 오브젝트(Prototype Object)와 프로토타입 링크(Prototype Link)에 대해서 설명하세요.

프로토타입 오브젝트는 자기 자신의 분신이며 자신을 원형으로 만들어질 다른 객체가 참고할 프로토타입이 됩니다.

프로토타입 링크(__proto__)는 자신을 만들어낸 원형인 프로토타입 객체를 참조하는 숨겨진 링크로써 프로토타입을 의미합니다.


프로토타입 체인(Prototype Chain)에 대해서 설명하세요.

프로토타입 링크(__proto__)를 통해 상위 프로토타입과의 연결관계가 연속해서 이어지는 것을 프로토타입 체인이라고 합니다. 


스코프(Scope)에 대해서 설명하세요.

작성된 코드를 둘러싼 환경을 말합니다. 전역 또는 지역으로 정의될 수 있습니다. 

예를 들어 함수는 함수만의 지역 스코프를 가지고, 함수 안에 정의된 변수나 함수는 전역 스코프에서 접근할 수 없습니다.


스코프 체인(Scope Chain)에 대해서 설명하세요.

스코프가 계속 연결되는 것입니다. 말하자면 스코프안에 스코프 만들기입니다. (대답이 부실한데 사실 스코프체인 개념이 잘 이해가 안 됨)


클로저(Closure)에 대해서 설명하세요.

내부 함수가 외부 함수의 맥락에 접근할 수 있는 것을 가리킵니다. 

내부함수는 외부함수의 지역변수에 접근할 수 있는데, 외부함수의 실행이 끝나서 외부함수가 소멸된 이후에도 내부 함수가 외부 함수의 변수에 접근할 수 있습니다. 

이러한 것을 클로저라고 합니다.


콜백 함수(Callback Function)에 대해서 설명하세요.

다른 코드의 인수로 넘겨주는 실행 가능한 함수입니다.


익명 함수는 주로 어떤 상황에서 사용하나요?

주로 콜백함수에서 일회용 함수를 넘길 때 익명함수를 사용합니다.


AJAX에 대해서 설명하세요.

자바스크립트와 XML을 이용해서 비동기적으로 서버와 통신을 하는 기법입니다. 

브라우저의 URL 주소 변경을 이용하지 않고 내부적으로 통신해서 response를 받아오기 때문에 비동기로 특정 데이터를 가져오는데에 사용됩니다.