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

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

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

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

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

문자열을 뒤집는 함수 작성



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

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

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


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

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

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


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**의 모듈로를 모두 반환하는 함수를 작성하세요. .


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

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

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


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

결론



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

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

좋은 웹페이지 즐겨찾기