JavaScript 면접 질문 — 기능 및 객체

아마존에서 내 책 보기https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62
지금 http://jauyeung.net/subscribe/에 내 이메일 목록을 구독하십시오.
전방 개발자의 일자리를 얻기 위해서 우리는 코딩 면접을 완성해야 한다.
본문에서 우리는 일부 함수와 대상 문제를 연구할 것이다.

화살표 함수란 무엇입니까?
화살표 함수는 JavaScript에서 함수를 정의하는 새로운 방법입니다.2015년부터 제공된다.
그것은 this 와 혼동을 없앴다. this 에 연결되지 않기 때문에 구조 함수로 사용할 수 없다.
그것들도 매달릴 수 없기 때문에 정의가 된 후에만 사용할 수 있다.
또한 arguments 대상에 연결되지 않기 때문에 function 성명에서처럼arrow 함수에 전달되는 매개 변수를 얻을 수 없습니다.
arrow 함수에서 매개변수를 가져오려면 다음과 같이 rest 구문을 사용합니다.
const getArgs = (...rest) => rest
예를 들어, 다음과 같이 화살표 함수를 정의할 수 있습니다.
const currentDate = () => new Date();
위 코드에서 우리는 =>new Date() 화살표 함수를 사용하여 현재 날짜를 되돌려줍니다.
만약 우리가 여러 줄 화살표 함수에서 일부 물건을 되돌려 주고 싶다면, 우리는 다른 함수처럼 현저하게 작성해야 한다. return예를 들어 다음과 같이 쓸 수 있습니다.
const currentDate = () => {
  return new Date();
}
여러 줄 화살표 함수에서 현식으로 되돌아오기 new Date().
다음과 같이 다른 함수와 마찬가지로 매개변수를 전달할 수 있습니다.
const identity = (obj) => {
  return obj;
}

무엇이 수업입니까?
JavaScript에서 클래스는 구조 함수의 구문 캔디입니다.이것은 클래스를 만드는 데 사용되지만, 우리의 보기에는 원형 작업이 숨겨져 있습니다.
밑바닥에서, 그것은 여전히 그가 사용해 온 원형 계승 모델을 사용한다.
예를 들어, 다음과 같은 유형의 체인이 있는 경우
class Person {
  constructor(firstName, lastName) {
    this.lastName = lastName;
    this.firstName = firstName;
  }

  fullName() {
    return `${this.firstName} ${this.lastName}`;
  }
}

class Employee extends Person {
  constructor(firstName, lastName, title) {
    super(firstName, lastName);
    this.title = title;
  }

  getTitle() {
    return this.title;
  }
}
위 코드에는 구조 함수와 전체 이름을 얻을 수 있는 방법이 있는 Person 클래스가 있습니다.
그리고 우리는 Employee 클래스가 하나 있는데, 이것은 Person 키워드로 지적한 것처럼 extends 클래스를 확장했다.
구조 함수에서 우리는 Person류의 구조 함수를 호출하고 title 필드를 설정합니다. 이 필드는 Employee의 전문 필드입니다.
우리는 또 getTitle 방법을 추가했다.
만약 우리가 호출 super 함수를 잊어버리면, 자바스크립트 해석기가 우리에게 오류를 줄 것입니다.
이는 구조 함수를 사용하여 작성된 다음 코드와 같습니다.
function Person(firstName, lastName) {
  this.lastName = lastName;
  this.firstName = firstName;
}

Person.prototype.fullName = function() {
  return `${this.firstName} ${this.lastName}`;
}

function Employee(firstName, lastName, title) {
  Person.call(this, firstName, lastName);
  this.title = title;
}

Employee.prototype = Object.create(Person.prototype);

Employee.prototype.getTitle = function() {
  return this.title;
}
위의 코드는 우리가 이런 종류를 사용할 때의 코드와 같지만 Person.call 또는 Object.create가 부족하면 오류를 얻지 않습니다.
우리는 함수 이외의 모든 구조 함수prototype에 내용을 추가해야 한다.
비록 우리는 구조 함수 문법을 사용하지 않지만, 우리는 유형 문법이 구조 함수의 문법 설탕일 뿐이라는 것을 알아야 한다.

무엇이 대상 분해입니까?
대상 분해는 그룹 항목이나 대상 속성을 자신의 변수에 분배하는 깨끗한 방법이다.
예를 들어, 배열 항목을 다음과 같이 단일 변수로 분해할 수 있습니다.
const [one, two] = [1, 2];
그리고 one는 1, two는 2.
위 코드는 다음 코드와 같습니다.
const arr = [1, 2];
const one = arr[0];
const two = arr[1];
마찬가지로 개체에 대해서도 다음과 같은 작업을 수행할 수 있습니다.
const {
  one,
  two
} = {
  one: 1,
  two: 2
}
그리고 one 속성의 값을 one에 지정하고 two 속성의 값을 two에 지정합니다.
위 코드는 다음 코드와 같습니다.
const obj = {
  one: 1,
  two: 2
}
const one = obj.one;
const two = obj.two;
보시다시피 대상과 수조의 해체는 낡은 방법보다 훨씬 깨끗하다.
다음과 같은 방법으로 변수를 기본값으로 설정할 수도 있습니다.
const [one, two, three = 3] = [1, 2];
three에 분배 항목이 없기 때문에three의 값은 3이다.

결론
화살표 함수는 비구조 함수를 만드는 함수에 매우 유용하다.그것들은 this의 제약을 받지 않는다.그 밖에 한 줄이면 내용을 되돌려 줄 필요가 없기 때문에 return 더 짧다.
JavaScript의 클래스는 구조 함수의 구문 캔디입니다.원형을 직접 조작할 필요가 없기 때문에, 만약 우리가 무엇을 빠뜨리면 자바스크립트 해석기가 우리에게 오류를 줄 수 있기 때문에, 이것은 우리로 하여금 더욱 쉽게 실례를 계승하고 만들 수 있게 한다.
대상과 그룹 해체는 우리가 대상이나 그룹 항목을 변수에 깨끗하게 분배할 수 있도록 한다.

좋은 웹페이지 즐겨찾기