기본 자바스크립트 인터뷰 연습

https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62에서 Amazon에서 내 책을 확인하십시오.

지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.

프론트엔드 개발자로 일하려면 코딩 인터뷰를 해야 합니다.

이 기사에서는 모든 사람이 알아야 할 몇 가지 간단한 준비 질문을 살펴보겠습니다.

문자열을 뒤집는 함수 작성



JavaScript의 문자열 및 배열 메서드를 사용하여 문자열을 쉽게 뒤집을 수 있습니다.

이를 위해 다음 함수를 작성할 수 있습니다.

const reverseString = (str) => str.split('').reverse().join('');


이 함수는 문자열을 문자 배열로 분할한 다음 배열을 뒤집고 다시 결합하는 방식으로 작동합니다.

JavaScript 문자열의 split 메소드와 배열의 reversejoin 메소드를 사용했습니다.

목록에서 숫자를 필터링하는 함수를 작성하세요.


isNaN 함수와 배열의 filter 메서드로 그렇게 할 수 있습니다.

이 문제를 해결하기 위해 다음 코드를 작성할 수 있습니다.

const removeNums = (arr) => arr.filter(a => isNaN(+a));

removeNums 함수에서 배열arr을 전달한 다음 filter를 반환하는 콜백으로 배열에 isNaN(+a)를 호출합니다. 이는 변환을 시도할 때 항목이 true로 변환되는 경우 NaN입니다. 숫자로 합니다.

정렬되지 않은 목록에서 요소를 찾는 함수를 작성하세요.



배열의 findIndex 메서드를 사용하여 정렬되지 않은 목록에서 요소를 찾을 수 있습니다.

다음 함수를 작성합니다.

const search = (arr, searchItem) => arr.findIndex(a => a === searchItem);


검색을 수행합니다. findIndex 메서드는 콜백의 조건을 충족하는 첫 번째 항목의 인덱스를 반환합니다.

다음과 같이 사용할 수 있습니다.

console.log(search(['foo', 'bar', 1], 'foo'));


문자열 검색'foo'  . 그러면 'foo'가 배열의 첫 번째 항목이기 때문에 0을 얻어야 합니다.

클로저의 사용법을 보여주는 함수를 작성하십시오.



클로저는 함수를 반환하는 함수입니다. 일반적으로 외부에서 데이터가 노출되지 않도록 외부 함수 내부에 일부 데이터를 숨기는 데 사용됩니다.

다음과 같이 작성하면 됩니다.

const multiply = (first) => {
  let a = first;
  return (b) => {
    return a * b;
  };
}


그런 다음 다음과 같이 작성하여 호출할 수 있습니다.

console.log(multiply(2)(3));


우리를 얻는 것은 6.

약속이란 무엇입니까? Promise를 반환하는 함수를 작성하세요.



Promise는 불확실한 시간에 실행되는 비동기 코드입니다.

보류, 이행 또는 거부 상태가 있을 수 있습니다. Fulfilled는 성공을 의미하고, Rejected는 실패했음을 의미합니다.

약속의 예는 Fetch API입니다. 그것은 약속을 반환하고 우리는 그것을 스스로 약속을 반환하는 데 사용할 수 있습니다.

예를 들어 다음과 같이 작성할 수 있습니다.

const getJoke = async () => {
  const res = await fetch('http://api.icndb.com/jokes/random')
  const joke = await res.json();
  return joke;
}


Chuck Norris API에서 농담을 얻으려면

항목 목록을 평면화하는 함수를 작성하세요.



배열flat 메서드를 사용하여 항목 배열을 평면화할 수 있습니다.

예를 들어 다음과 같이 작성할 수 있습니다.

const flatten = arr => arr.flat(Infinity);


배열의 모든 수준을 한 수준으로 병합합니다.

또한 배열의 각 항목을 반복하고 중첩 배열을 한 수준으로 재귀적으로 평면화할 수 있습니다.

예를 들어 다음과 같이 작성할 수 있습니다.

const flatten = (arr = []) => {
  let result = [];
  for (let item of arr) {
    if (Array.isArray(item)) {
      result = result.concat(flatten(item));
    } else {
      result = result.concat(item);
    }
  }
  return result;
}


배열을 평평하게 합니다.

코드는 배열의 각 항목을 반복하여 작동합니다. 그런 다음 항목에서 배열을 찾고 flatten 자체를 호출한 다음 result 에 추가합니다. 그렇지 않으면 항목을 result 배열에 추가합니다.

모든 레벨을 거친 후 반환됩니다result  .

두 숫자 **a**와 **b**를 받아들이고 **a**와 **b**의 나눗셈과 **a**와 **b**의 모듈로를 모두 반환하는 함수를 작성하세요. .


/ 연산자를 사용하여 ab를 나누고 % 연산자를 사용하여 ab로 나눌 때 나머지를 찾습니다.

이를 위해 다음 함수를 작성할 수 있습니다.

const divMod = (a, b) => {
  if (b !== 0) {
    return [a / b, a % b];
  }
  return [0, 0];
}


제수가 0인지 확인한 다음 언급한 대로 연산을 수행하고 계산된 항목을 배열로 반환합니다.

결론



우리는 우리의 삶을 더 쉽게 만들기 위해 가능한 한 많이 배열과 문자열 방법을 사용할 수 있습니다.

그들은 또한 우리가 처음부터 구현하는 것보다 더 효율적입니다.

좋은 웹페이지 즐겨찾기