>  Q&A  >  본문

[프론트엔드 취업 필독] 프론트엔드 개발 면접 질문과 답변_JavaScript

JavaScript

JavaScript 프로토타입, 프로토타입 체인의 특징은 무엇인가요?

평가는 무엇을 하나요?

해당 문자열을 JS 코드로 구문 분석하고 실행하는 기능입니다.
안전하지 않고 성능을 많이 소모하는 eval을 사용하지 않아야 합니다(두 번, JS 문으로 구문 분석하고 한 번 실행).

null과 정의되지 않음의 차이점은 무엇인가요?

일반 이벤트 리스너 함수를 작성하세요.

// 이벤트(이벤트) 도구 세트, 출처: github.com/markyun
markyun.Event = {
                                                            using using using '             through 통과 통과 통과 오프 ‐ to
                                fn= document; = function() {                                                                                     사용 사용 사용         사용 사용 사용 ' 's ‐ ‐ ‐ ‐ ‐창 .onload = function() { ;
                                                                  // 매개변수: 작업 요소, 이벤트 이름, 이벤트 핸들러
AddEvent : function(element , 유형, 처리기) {
                                                                         } else if (element.attachEvent) {
               ~      element['on' + type] = handler
// 이벤트 제거/ RemoveEvent: 함수(요소, 유형, 핸들러) {
if ( Element.removenentListener) {
Element.removenentListener (Type, Handler, False);
} ELS e if (Element.datachevent) {
element.detachEvent('on' + type, handler);
            } else {
                  element[' on' + 유형] = null;},/ // 이벤트 방지 (IE는 이벤트 캡처를 지원하지 않기 때문에 주로 이벤트 버블링에서)
StopPropagation: Function (EV) {
IF (Ev.stopPropagation) {
Ev.stopPropagation ()
} Else {
EV EV .cancelBubble = true;
                                                                          ~                                                            event.returnValue = false; // 이벤트 개체에 대한 참조를 가져오고 이벤트에 대한 모든 정보를 가져옵니다. 이벤트가 언제든지 사용될 수 있는지 확인합니다. and​ 동안 (c) {
ev = c.arguments[0];
                                                                        c = c.caller;
}
}
}
}
}



Node.js에 적용 가능한 시나리오는 무엇인가요?

높은 동시성, 채팅, 실시간 메시지 푸시


js의 기본 데이터 유형을 소개합니다.

숫자, 문자열, 부울, 객체, 정의되지 않음


Javascript에서 상속을 구현하는 방법은 무엇입니까?

프로토타입과 생성자를 통해


["1", "2", "3"].map(parseInt) 답은 무엇인가요?

[1, NaN, NaN]parseInt에는 두 개의 매개 변수(val, radix)가 필요하지만 map은 3(요소, 인덱스, 배열)을 전달하기 때문입니다

객체 생성 방법은? (이 객체의 메모리 맵 그리기)

function Person(이름, 나이) {
this.name = name;
this.age = age;
this.sing = function() { Alert ( this.name) }
}

This 객체에 대한 이해에 대해 이야기해보겠습니다.

이것은 js의 키워드입니다. 함수가 다양한 상황에서 사용됨에 따라 이 값이 변경됩니다.

하지만 일반적인 원칙이 있습니다. 즉, 함수를 호출하는 개체를 나타냅니다.

이것은 일반적으로 전역 개체 Global입니다. 메소드 호출로서 이것은 이 객체를 참조합니다. 이벤트는 무엇입니까? IE와 Firefox의 이벤트 메커니즘의 차이점은 무엇입니까? 거품을 멈추는 방법?

1. 웹페이지에서 수행하는 작업(일부 작업은 여러 이벤트에 해당함) 예를 들어 버튼을 클릭하면 이벤트가 생성됩니다. JavaScript로 감지할 수 있는 동작입니다.

2. 이벤트 처리 메커니즘: IE는 이벤트 버블링이고 Firefox는 이벤트 캡처입니다.

3. ev.stopPropagation();


클로저란 무엇이며 왜 사용해야 합니까?

say667()을 실행한 후에는 say667() 클로저의 내부 변수가 존재하지만 클로저 내부 함수의 내부 변수는 존재하지 않게 됩니다. 이로 인해 Javascript의 가비지 수집 메커니즘 GC는 say667()이 차지하는 리소스를 회수하지 않게 됩니다. 왜냐하면 say667()의 내부 함수 실행은 say667()의 변수에 따라 달라지기 때문입니다. 이것은 클로저가 수행하는 작업에 대한 매우 간단한 설명입니다.

function say667() {

// 클로저 내에서 끝나는 지역 변수

var num = 666;
var sayAlert = function() { Alert(num) }
num++;
return sayAlert;
}

var sayAlert = say667();
sayAlert()//실행 결과가 667



"use strict"; 무슨 뜻인가요? 그것은 무엇입니까?

객체가 특정 클래스에 속하는지 어떻게 확인하나요?

instanceof 사용(개선 예정)

if(astanceofPerson){

alert('yes');

}


new 연산자는 정확히 무엇을 합니까?

1. 빈 객체를 생성하고, 변수는 객체를 참조하고 함수의 프로토타입도 상속합니다.

2. 이것이 참조하는 객체에 속성과 메소드가 추가됩니다.

3. 새로 생성된 객체는 this로 참조되며, 마지막에 this가 암시적으로 반환됩니다.

var obj = {};
obj.__proto__ = Base.prototype;
Base.call(obj);



Javascript에는 실행 중에 객체를 검색할 때 프로토타입을 절대 찾지 않는 함수가 있습니다. 이것은 어떤 기능인가요?

hasOwnProperty

JSON을 아시나요?


JSON(JavaScript Object Notation)은 가벼운 데이터 교환 형식입니다.

JavaScript의 하위 집합을 기반으로 합니다. 데이터 형식은 간단하고 읽고 쓰기 쉬우며 대역폭을 거의 차지하지 않습니다.

{'age':'12', 'name':'back'}


js에서 로딩을 지연시키는 방법은 무엇인가요?

연기 및 비동기, DOM의 동적 생성(가장 일반적으로 사용됨), 요청 시 js의 비동기 로딩

ajax가 무엇인가요?

동기화와 비동기의 차이점은?

교차 도메인 문제를 해결하는 방법은?

jsonp, iframe, window.name, window.postMessage, 서버에 프록시 페이지 설정

어떻게 모듈화하나요? ​​​= function() {

     //...

  };

   return {

    m1 : m1,
    m2 : m2
  };
  })()



AMD(모듈/비동기 정의) , CMD(공통 모듈 정의) 규범적 차이?

비동기 로딩 방법은 무엇인가요?

(1) 연기, IE만 지원

(2) async:

(3) 스크립트 생성, DOM에 삽입, 로드 후 콜백

document.write와 innerHTML의 차이점

document.write만 가능 전체 페이지 다시 그리기

innerHTML은 페이지의 일부를 다시 그릴 수 있습니다

.call()과 .apply()의 차이점은 무엇인가요?

예제에서 add는 sub를 대체하는 데 사용되며 add.call(sub,3,1) == add(3,1)이므로 실행 결과는 다음과 같습니다. Alert(4)

참고: js의 함수 실제로는 객체이고, 함수 이름은 Function 객체에 대한 참조입니다.

function add(a,b)

{

warning(a+b);

}

function sub(a,b)
add.call(sub,3, 1)



차이점은 무엇인가요? Jquery와 jQuery UI 사이?

*jQuery는 선택기, 속성 수정, 이벤트 바인딩 등을 주로 제공하는 js 라이브러리입니다.

*jQuery UI는 jQuery를 기반으로 하고 jQuery의 확장성을 활용하여 설계된 플러그인입니다.
대화 상자, 드래그 동작, 크기 조정 동작 등과 같이 일반적으로 사용되는 일부 인터페이스 요소를 제공합니다.


JQuery의 소스 코드를 보셨나요? 구현 원리에 대해 간략하게 말씀해 주실 수 있나요?

jquery에서 배열을 json 문자열로 변환한 다음 다시 되돌리는 방법은 무엇입니까?

이 함수는 jQuery에서 제공되지 않으므로 먼저 두 개의 jQuery 확장을 작성해야 합니다.

$.fn.stringifyArray = function(array) {

} return JSON.stringify(array)
}

$.fn. parseArray = Function (Array) {
Return json.parse (array)}

다음을 호출합니다:

$ (""). StringifyArray (Array)

jQuery에 최적화된 방법?

*클래스 기반 선택의 성능은 모든 DOM 요소를 순회해야 하기 때문에 Id 선택기에 비해 매우 비쌉니다.

*자주 운영되는 DOM은 먼저 캐싱한 후 운영하세요. Jquery의 체인 호출을 사용하는 것이 더 좋습니다.
예: var str=$("a").attr("href");

*for (var i = size; i < arr.length; i++) {}
for 루프는 매번 For를 검색합니다. 배열(arr)의 .length 속성을 사용하여 루프를 시작할 때 이 숫자를 저장하도록 변수를 설정하면 루프가 더 빠르게 실행될 수 있습니다.
for (var i = size, length = arr.length; i < length; i++ ) {}

JavaScript에서 범위 및 변수 선언 호이스팅?

고성능 Javascript를 작성하는 방법은 무엇입니까?

어떤 작업으로 인해 메모리 누수가 발생하나요?

메모리 누수는 더 이상 소유하지 않거나 필요하지 않은 후에도 지속되는 객체입니다.
가비지 수집기는 개체를 주기적으로 검색하고 각 개체에 대한 참조가 있는 다른 개체의 수를 계산합니다. 객체에 0개의 참조가 있거나(다른 객체가 이를 참조하지 않음) 객체에 대한 유일한 참조가 순환이면 객체의 메모리를 회수할 수 있습니다.

setTimeout의 첫 번째 매개변수가 함수 대신 문자열을 사용하면 메모리 누수가 발생합니다.
클로저, 콘솔 로그, 루프(두 개체가 서로 참조하고 서로 유지하면 루프가 발생함)

JQuery는 여러 이벤트를 동시에 개체에 바인딩할 수 있습니다.


天蓬老师天蓬老师2532일 전1582

모든 응답(0)나는 대답할 것이다

답장 없음
  • 취소회신하다