JavaScript 질문
프론트엔드 면접 질문 - JS 질문에 대한 해설입니다. Pull Request를 통한 제안, 수정 요청 환영합니다.
- 이벤트 위임에 대해 설명하세요.
this
가 JavaScript에서 어떻게 작동하는지 설명하세요.- 프로토타입 상속이 어떻게 작동하는지 설명하세요.
- AMD vs CommonJS에 대해 어떻게 생각하나요?
- 다음이 IIFE로 작동하지 않는 이유를 설명하세요:
function foo(){ }();
를 IIFE로 만들 기 위해서는 무엇을 바꿔야하나요? null
,undefined
,undeclared
의 차이점은 무엇인가요? 어떻게 이 상태들에 대한 확인을 할 것인가요?- 클로저는 무엇이며, 어떻게/왜 사용하나요?
.forEach
루프와.map()
루프 사이의 주요 차이점을 설명할 수 있나요? 왜 둘 중 하나를 선택할 것인가요?- 익명 함수의 일반적인 사용 사례는 무엇인가요?
- 코드를 어떻게 구성하나요? (모듈 패턴, 고전적인 상속?)
- 호스트 객체와 내장 객체의 차이점은 무엇인가요?
function Person(){}
,var person = Person()
,var person = new Person()
의 차이점은 무엇인가요?.call
과.apply
의 차이점은 무엇인가요?Function.prototype.bind
에 대해 설명하세요.- 언제
document.write()
를 사용하나요? - Feature detection, Feature inference, UA String의 차이점은 무엇인가요?
- Ajax에 대해 가능한 한 자세히 설명하세요.
- Ajax를 사용하는 것의 장단점은 무엇인가요?
- JSONP가 어떻게 동작하는지(그리고 Ajax와 어떻게 다른지)를 설명하세요.
- JavaScript 템플릿을 사용한 적이 있나요? 사용해봤다면, 어떤 라이브러리를 사용했나요?
호이스팅
에 대해 설명하세요.- event bubbling에 대해 설명하세요.
- "attribute"와 "property"의 차이점은 무엇인가요?
- 내장 JavaScript 객체를 확장하는 것이 좋은 생각이 아닌 이유는 무엇인가요?
- document
load
이벤트와 documentDOMContentLoaded
이벤트의 차이점은 무엇인가요? ==
와===
의 차이점은 무엇인가요?- JavaScript와 관련하여 same-origin 정책을 설명하세요.
- 다음이 작동하게 만들어보세요.
- 왜 Ternary expression이라고 부르고, "Ternary"라는 단어는 무엇을 나타내나요?
"use strict";
이 무엇인가요? 사용시 장단점이 무엇인가요?- 100까지 증가하면서
3
의 배수에는fizz
를 출력하고,5
의 배수에는buzz
를 출력하고,3
과5
의 배수에는fizzbuzz
를 출력하는 for loop를 만드세요. - 일반적으로 웹 사이트의 전역 스코프를 그대로 두고 건드리지 않는 것이 좋은 이유는 무엇인가요?
- 왜
load
이벤트와 같은 것을 사용하나요? 이 이벤트에는 단점이 있나요? 다른 대안을 알고 있나요? 알고 있다면 왜 그것을 사용할 건가요? - single page app이 무엇인지 설명하고 SEO-friendly하게 만드는 방법을 설명하세요.
- Promises와 그 Polyfill에 대한 당신의 경험은 어느 정도인가요?
- Callback 대신에 Promise를 사용할 때의 장점과 단점은 무엇인가요?
- JavaScript로 컴파일되는 언어로 JavaScript 코드를 작성하는 경우의 장단점은 무엇인가요?
- JavaScript 코드를 디버깅하기 위해 어떤 도구와 기술을 사용하나요?
- 오브젝트 속성이나 배열 항목을 반복할 때 사용하는 언어 구문은 무엇인가요?
- mutable 객체와 immutable 객체 사이의 차이점을 설명하세요.
- 동기, 비동기 함수의 차이점을 설명하세요.
- 이벤트 루프란 무엇인가요? 콜 스택과 태스크 큐의 차이점은 무엇인가요?
function foo() {}
와var foo = function() {}
사이에서foo
사용의 차이에 대해 설명하세요.let
,var
,const
를 사용하여 생성된 변수들의 차이점은 무엇인가요?- ES6 클래스와 ES5 함수 생성자의 차이점은 무엇인가요?
- 새 화살표 => 함수 문법에 대한 사용 예시를 들 수 있나요? 이 새로운 문법은 다른 함수와 어떻게 다른가요?
- 생성자의 메서드에 화살표 문법을 사용하면 어떤 이점이 있나요?
- 고차 함수(higher-order function)의 정의는 무엇인가요?
- 객체나 배열에 대한 디스트럭쳐링 예시를 들 수 있나요?
- ES6 템플릿 리터럴은 문자열을 생성하는데 많은 유연성을 제공합니다. 이에 대한 예를 들 수 있나요?
- curry 함수의 예를 들어 줄 수 있나요? 그리고 이 문법은 어떤 이점을 가지고 있나요?
- spread 문법을 사용할 때의 이점은 무엇이며 rest 문법과 다른 점은 무엇인가요?
- 파일 간에 코드를 공유하려면 어떻게 해야하나요?
- 정적 클래스 멤버를 만드는 이유는 무엇인가요?
- 다른 답변들