类库下载 java类库 가장 많이 묻는 JavaScript 프론트엔드 인터뷰 질문 10가지

가장 많이 묻는 JavaScript 프론트엔드 인터뷰 질문 10가지

Oct 12, 2016 pm 02:17 PM

이런 유형의 인터뷰에 동의하지 않는 사람들이 많다는 것을 알고 있습니다. 사실, 당신이 좋든 싫든 그것을 받아들여야 합니다. 특히 독학을 하고 첫 직장에 지원하는 경우에는 더욱 그렇습니다.

이 외에도 Github/프로젝트 주소가 이상적인 증명 방법일 수 있지만 모든 방법에 의존하지는 마세요.

좋은 소식은 제한된 시간 내에 답변할 수 없는 어려운 질문(이벤트 루프, 양희삼각형 등)이 있고, 다른 면접 지원자도 인정한 부분이 있다는 것입니다. 답변을 하면 토론이 훨씬 쉬워질 것입니다.

나쁜 소식은 일부 인터뷰에서는 나중에 피드백이 없다는 것입니다. 세 회사에는 다시 연락이 닿지 않았습니다. 이 클릭은 자신감을 파괴하고 무례합니다. 그러다가 '인터뷰가 너무 잘 됐지?', '내 타입이 마음에 안 드나?' 등 심리적인 어려움을 겪을 수도 있다. 따라서 당신이 면접관이라면 면접관에게 명확한 대답을 하십시오. 자동 응답이라도 아무것도 없는 것보다는 낫습니다.

1. n번째 행에 양희삼각형을 반환하는 함수를 설계합니다. (인터뷰 전체 질문은 한 가지입니다)

참고* 양희의 삼각형은 파스칼의 삼각형이라고도 합니다

1

1 1 1

1 2 1

1 3 3 1

...

2. 문자열을 반환하려면 에서 가장 많이 반복되는 단어입니다.

3. 재귀를 사용하여 길이 n의 피보나치 수열을 인쇄합니다.

참고* 피보나치 수열은 0과 1로 시작하고 이전 두 숫자인 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233

4. 바인드, 적용, 호출의 사용법과 차이점을 설명하세요.

5. 이벤트 위임이 무엇이며 왜 유용한지 설명하세요.

6. 이벤트 루프란?

7. JavaScript에서 호이스팅(선언 호이스팅)은 어떻게 작동하나요?

8.

9. JavaScript나 브라우저에 가장 추가하고 싶은 기능은 무엇이며 그 이유는 무엇입니까?

10. 함수형 프로그래밍과 명령형 프로그래밍의 차이점은 무엇인가요? 당신은 어느 것을 좋아합니까?

전형적인 프론트엔드 면접 질문 5가지

질문 1: 범위 범위


다음 코드를 고려해보세요.

(function() {
   var a = b = 5;
})();

console.log(b);
로그인 후 복사

콘솔에 무엇이 인쇄될까요?



위 코드는 5를 출력합니다.

이 문제의 비결은 두 개의 변수 선언이 있지만 a는 var 키워드를 사용하여 선언된다는 것입니다. 함수의 지역 변수임을 나타냅니다. 대조적으로, b는 전역 변수가 됩니다.

이 질문의 또 다른 요령은 엄격 모드를 사용하지 않는다는 것입니다('use strict';). 엄격 모드가 활성화되면 코드는 ReferenceError: b가 정의되지 않음을 발생시킵니다. 엄격 모드에서는 전역 변수 선언을 구현하기 위해 명시적인 사양이 필요하다는 점을 기억하세요. 예를 들어 다음과 같이 작성해야 합니다.

(function() {
   'use strict';
   var a = window.b = 5;
})();

console.log(b);
로그인 후 복사

질문 2: "네이티브" 메서드


를 생성하여 문자열 개체에 대한 반복 함수를 정의합니다. 정수 n을 전달하면 문자열을 n번 반복한 결과를 반환합니다. 예를 들어

console.log('hello'.repeatify(3));
로그인 후 복사

는 helloellohello를 인쇄해야 합니다.


답변

가능한 구현은 다음과 같습니다.

String.prototype.repeatify = String.prototype.repeatify || function(times) {
   var str = '';
   for (var i = 0; i < times; i++) {
      str += this;
   }
   return str;
};
로그인 후 복사

현재 질문은 JavaScript 상속 및 프로토타입에 대한 개발자의 지식을 테스트합니다. 이는 또한 개발자가 내장 객체를 확장하는 방법을 알고 있는지도 확인합니다(이렇게 하면 안 되더라도).

여기서 또 다른 중요한 점은 이미 정의되어 있는 기능을 재정의하지 않는 방법을 알아야 한다는 것입니다. 이전에 함수 정의가 존재하지 않았는지 테스트합니다.

String.prototype.repeatify = String.prototype.repeatify || function(times) {/* 여기에 코드 */};


이 기술은 JavaScript 기능을 호환되게 만들라는 요청을 받을 때 특히 유용합니다.

질문 3: 명령문 호이스팅


이 코드를 실행하면 무엇이 출력되나요?

function test() {
   console.log(a);
   console.log(foo());
   var a = 1;
   function foo() {
      return 2;
   }
}

test();
로그인 후 복사

답변

이 코드의 결과는 unundefined이고 2입니다.

이유는 변수 및 함수의 선언은 앞으로(함수 상단으로 이동) 이동하지만, 변수에는 아무런 값이 할당되지 않기 때문입니다. 따라서 변수를 인쇄할 때 해당 변수는 함수에 존재하지만(선언된) 여전히 undefine 상태입니다. 즉, 위의 코드는 다음과 동일합니다.

function test() {
   var a;
   function foo() {
      return 2;
   }
 
   console.log(a);
   console.log(foo());
    
   a = 1;
}
 
test();
로그인 후 복사

질문 4: JavaScript에서는 어떻게 작동하나요?


下面的代码会输出什么结果?给出你的答案。

var fullname = &#39;John Doe&#39;;
var obj = {
   fullname: &#39;Colin Ihrig&#39;,
   prop: {
      fullname: &#39;Aurelio De Rosa&#39;,
      getFullname: function() {
         return this.fullname;
      }
   }
};

console.log(obj.prop.getFullname());
 
var test = obj.prop.getFullname;
 
console.log(test());
로그인 후 복사

回答 

答案是Aurelio De Rosa和John Doe。原因是,在一个函数中,this的行为,取决于JavaScript函数的调用方式和定义方式,而不仅仅是看它如何被定义的。 

在第一个 console.log()调用中,getFullname() 被调用作为obj.prop对象的函数。所以,上下文指的是后者,函数返回该对象的fullname。与此相反,当getFullname()被分配到test变量时,上下文指的是全局对象(window)。这是因为test是被隐式设置为全局对象的属性。出于这个原因,该函数返回window的fullname,即定义在第一行的那个值。 

问题5:call() 和 apply()


现在让你解决前一个问题,使最后的console.log() 打印 Aurelio De Rosa。 

回答 

该问题可以通过强制使用 call() 或者 apply() 改变函数上下文。在下面我将使用call(),但在这种情况下,apply()会输出相同的结果: 

console.log(test.call(obj.prop))


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)