신입 프론트엔드 면접 질문 리스트 : JavaScript

일반
- 실행 컨텍스트에 대해 설명해 주세요.
- 호이스팅에 대해 설명해 주세요.
- var, let, const의 차이를 설명해 주세요.
- 변수의 선언, 초기화, 할당의 차이점에 대해 설명해 주세요.
- TDZ에 대해 설명해 주세요.
- call stack과 heap에 대해 설명해주세요.
- 클로저에 대해 설명해 주세요.
- 렉시컬 환경, 스코프, 스코프 체인에 대해 설명해 주세요.
- 자바스크립트는 어떤 언어인가요?
- 자바스크립트 런타임 환경에 대해 설명해 주세요.
- 자바스크립트에서 일어나는 데이터 형 변환에 대해 설명해 주세요.
- 자바스크립트가 유동적인 언어인 이유는 무엇인가요?
- 자바스크립트를 공부하여 가장 인상 깊었던 것
- 데이터 타입에 대해 설명해주세요.
- undefined, null, undeclared를 비교하여 설명해 주세요.
- 생성자에 대해 설명해 주세요.
==
과 ===
의 차이는 무엇인가요?
- ES6에서 새로 생긴 기능을 설명해 주세요.
- 자바스크립트를 멀티 쓰레드처럼 사용하는 방법이 무엇인가요?
- 자바스크립트의 메모리 관리에 대해 설명해주세요.
- strict 모드에 대해 설명해주세요.
- rest 연산자와 spread 연산자에 대해 설명해주세요.
- Vanilla JS에서 DOM에 직접 접근하거나 조작하는 메서드는 어떤 것들이 있나요?
- querySelector()와 getElementBy~()의 차이점이 무엇인가요?
- setTimeout()과 setInterval()의 차이점이 무엇인가요?
비동기
- Promise에 대해 설명해 주세요.
- Promise와 Callback의 차이를 설명해 주세요.
- Promise와 async/await 을 사용한 비동기 통신의 차이를 설명해 주세요.
- async/await 에 대해 설명해 주세요.
- 이벤트 루프와 태스크 큐에 대해 설명해 주세요.
- 태스크 큐의 종류와 우선순위에 대해 설명해 주세요.
- 비동기 함수에 대해서 설명해 주세요.
- 동기, 비동기에 대해 설명해 주세요.
- 자바스크립트에서 비동기 로직이 어떻게 동작하나요?
- requestAnimationFrame에 대해 설명해 주세요.
- blocking과 non-blocking에 대해 설명해 주세요.
OOP
- 프로토타입에 대해 설명해 주세요.
- this에 대해 설명해 주세요.
- 함수, 화살표 함수, 클래스 등에서 this가 무엇을 가리키나요?
- call, apply, bind에 대해 설명해 주세요.
- 클래스에 대해 설명해 주세요.
- 클래스의 Public, Private, Protected, Static에 대해 설명해주세요.
함수
- 함수의 선언식과 표현식의 차이에 대해 설명해 주세요.
- map, forEach, reduce에 대해 설명해 주세요.
- 즉시 실행 함수에 대해 설명해 주세요.
- 제너레이터에 대해 설명해 주세요.
데이터
- 불변성을 유지하려면 어떻게 해야하나요?
- 얕은 복사와 깊은 복사에 대해 설명해 주세요.
- 이터러블과 이터레이터 프로토콜에 대해 설명해주세요.
타입스크립트
- 타입스크립트를 사용하는 이유는 무엇인가요?
- 자바스크립트와 타입스크립트의 차이점은 무엇인가요?
- Type과 Interface의 차이점에 대해 설명해 주세요.
- 제네릭에 대해 설명해주세요.
- 제네릭 유틸리티 타입에 대해 설명해 주세요.
- 타입스크립트를 엄격하게 사용하기 위해 도입했던 컨벤션이 있나요?
이벤트
- 이벤트 버블링에 대해서 설명해 주세요.
- 이벤트 버블링 활용법 (이벤트 위임)
- 이벤트 캡쳐링에 대해 설명해 주세요.
- 디바운스와 스로틀링의 차이에 대해 설명해 주세요.
- 이벤트 바인딩하는 방법에 대해 설명해 주세요.