기본 JavaScript 인터뷰 연습 — 숫자와 요소
지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.
프론트엔드 개발자로 일하려면 코딩 인터뷰를 해야 합니다.
이 기사에서는 모든 사람이 알아야 할 몇 가지 간단한 준비 질문을 살펴보겠습니다.
N의 피보나치 수를 계산하는 함수를 작성하세요.
루프와 JavaScript의 구조화 구문을 사용하여 이를 수행할 수 있습니다.
다음과 같이
fib
함수를 만듭니다.const fib = (n) => {
let i = 1,
a = 1,
b = 1;
while (i < n) {
[a, b] = [b, a + b];
i++;
}
return a;
}
위의 코드에서
b
를 a
로, b
를 a + b
로 설정하여 증가함에 따라 i
새로운 피보나치 값으로 숫자를 업데이트합니다.그런 다음 루프가 끝나면
a
를 반환합니다.문자열을 받아들이고 문자열 문자 빈도가 있는 맵을 반환하는 함수를 작성하십시오.
이를 위해 JavaScript
Map
를 사용할 수 있습니다.문자열을 문자 배열로 분할한 다음 다음과 같이 문자의 빈도를 계산하여 문자열의 문자 빈도를 계산합니다.
const count = str => {
const chars = str.split('');
const frequencies = new Map();
for (let c of chars) {
const freq = frequencies.get(c) || 0;
frequencies.set(c, freq + 1);
}
return frequencies;
}
코드에서는
Map
의 get
메서드를 사용하여 주파수를 구하고 1을 더한 다음 설정합니다.루프가 끝나면
Map
를 반환합니다.숫자를 받아 소수인지 확인하는 함수를 작성하세요.
숫자가 2인지 홀수인지 확인하여 소수인지 확인할 수 있습니다. 홀수이면 주어진 숫자의 바닥까지 숫자를 2로 나눈 값까지 나누려고 합니다.
예를 들어, 소수를 확인하기 위해 다음 함수를 작성할 수 있습니다.
const isPrime = (num) => {
if (num % 2 === 0 && num !== 2) {
return false;
}
for (let i = 3; i <= Math.ceil(num / 2); i++) {
if (num % i === 0) {
return false;
}
}
return true
}
짝수인지 확인하고 2가 아닌 경우 반환합니다
false
.그렇지 않으면 루프를 실행하여 숫자가
num
를 2로 나눈 한도까지 3으로 나눌 수 있는지 확인합니다.그 중 하나로 균등하게 나눌 수 있으면
false
를 반환합니다.그렇지 않으면
true
를 반환합니다.DOM 요소와 문자열을 받아들이고 해당 문자열과 함께 클래스 이름을 포함하는 직계 자식을 출력하는 함수를 작성합니다.
요소 개체의
getElementsByClassName
메서드를 사용하여 주어진 클래스 속성을 가진 자식을 가져올 수 있습니다.예를 들어 다음 함수를 작성할 수 있습니다.
const getChildrenWithClass = (el, className) => {
const children = el.getElementsByClassName(className);
for (let c of children) {
console.log(c);
}
}
위의 코드는
getElementsByClassName
요소 개체에서 el
를 호출하고 지정된 클래스 이름으로 자식 요소를 출력합니다.또한
querySelectorAll
메서드를 사용하여 동일한 작업을 수행할 수 있습니다.다음을 작성할 수 있습니다.
const getChildrenWithClass = (el, className) => {
const children = el.querySelectorAll(`.${className}`);
for (let c of children) {
console.log(c);
}
}
유일한 차이점은 템플릿 문자열
querySelectAll
을 사용하여 `.${className}`
를 호출했다는 것입니다.DOM 요소와 문자열을 받아들이고 부모 노드에 해당 문자열이 있는 클래스가 포함되어 있으면 인쇄하는 함수를 작성하세요. 부모 요소가 없을 때 중지해야 합니다.
루트 요소에 도달하거나 원하는
parentNode
가 있는 요소를 찾을 때까지 className
속성을 재귀적으로 사용할 수 있습니다.이를 위해 다음과 같이
getParentWithClassName
를 생성합니다.const getParentWithClassName = (el, className) => {
let currentEl = el.parentNode;
while (currentEl) {
if (currentEl.className === className) {
return currentEl;
}
currentEl = currentEl.parentNode;
}
return undefined;
}
위의 코드에서
currentEl
를 parentNode
의 el
로 설정했습니다.그런 다음
while
루프를 사용하여 주어진 이름을 가진 하나를 찾을 때까지 주어진 parentNode
로 className
를 검색합니다.주어진
className
로 하나를 찾으면 요소를 반환합니다.그렇지 않으면
currrentel
를 currentEl.parentNode
로 설정하여 계속 진행합니다.루트 노드로 루프를 돌고 여전히 주어진
className
요소를 찾지 못하면 undefined
를 반환합니다.결론
parentNode
속성을 사용하여 자식 노드의 부모를 찾습니다.주어진 CSS 선택기로 자식 노드를 얻으려면 DOM 탐색 메서드를 호출하여 주어진 선택기로 요소를 찾을 수 있습니다.
사전을 생성하기 위해
Map
생성자를 사용할 수 있습니다.피보나치 수에서 했던 것처럼 구조 해제 구문을 사용하여 여러 가지를 쉽게 재할당할 수 있습니다.
Reference
이 문제에 관하여(기본 JavaScript 인터뷰 연습 — 숫자와 요소), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aumayeung/basic-javascript-interview-exercises-numbers-and-elements-1n74텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)