[모던 자바스크립트 Deep Dive] 25~27장 퀴즈

jini.choi·2023년 11월 22일
post-thumbnail

📝 문제

25장 클래스

Q. 클래스에서 정의한 메서드의 특징 중 틀린것을 고르세요.

1️⃣ function 키워드를 생략한 메서드 축약표현을 사용한다.
ㅤ
2️⃣ 객체 리터럴과는 다르게 클래스에 메서드를 정의할 때는 콤마가 필요하다.
ㅤ
3️⃣ 암묵적으로 strict mode로 실행된다.
ㅤ
4️⃣ for ... in 문이나 Object.keys 메서드 등으로 열거할 수 없다. 즉, 프로퍼티의 열거 가능 여부를 나타내며, 불리언 값을 갖는 프로퍼티 어트리뷰트 [[Enumerable]]의 값이 false다.
ㅤ
5️⃣ 내부 메서드 [[Construct]]를 갖는 constructor다. 따라서 연산자와 함께 호출할 수 있다.

26장 ES6 함수의 추가 기능

Q. 화살표 함수특징 중 틀린 것을 고르세요.

1️⃣ 매개 변수가 없는 경우를 제외하고 소괄호 ()를 생략할 수 있다.
ㅤ
2️⃣ 함수 몸체가 하나의 문으로 구성된다면 함수 몸체를 감싸는 중괄호{}를 생략할 수 있다.
ㅤ
3️⃣ 객체 리터럴을 반환하는 경우 객체 리터럴을 중괄호 {}로 감싸 주어야한다.
ㅤ
4️⃣ 함수 몸체가 여러개의 문으로 구성된다면 함수 몸체를 감싸는 중괄호 {}를 생략할 수 없다
ㅤ
5️⃣ 화살표 함수도 즉시 실행 함수로 사용할 수 있다.

27장 배열

Q. 빈칸을 채워 넣으세요.

아래 코드는
1. 1~100사이에 랜덤숫자를 중복되지 않는 난수로 10개를 생성합니다.
2. 그 후 오름차순으로 정렬한 후 추출하고,
3. 합계를 구한 것도 추출해야 합니다.

let randomNumberArr = [];

for(let i = 0; i <= 10; i++){
  const randomNumber = Math.floor(Math.random() * 100) + 1;
  
  if(!randomNumberArr.빈칸(randomNumber)){
    randomNumberArr.빈칸(randomNumber)
  }else{
    i--
  }
}

randomNumberArr.빈칸((num1, num2) => num1 - num2);

const result = randomNumberArr.빈칸((pre, cur) => pre + cur, 0)

console.log(randomNumberArr);
console.log(result);

💡 답

25장 클래스

A. 2️⃣, 5️⃣

2️⃣ 객체 리터럴과는 다르게 클래스에 메서드를 정의할 때는 콤마가 필요 없다.

5️⃣ 내부 메서드 [[Construct]]를 갖지 않는 non-constructor다. 따라서 new 연산자와 함께 호출할 수 없다.

26장 ES6 함수의 추가 기능

A. 1️⃣, 3️⃣

1️⃣ 매개변수가 하나인 경우에만 생략할 수 있다.
3️⃣ 객체 리터럴을 반환하는 경우 객체 리터럴을 "소괄호()로" 감싸 주어야한다.

27장 배열

A. includes, push, sort, reduce

let randomNumberArr = [];

for(let i = 0; i <= 10; i++){
  const randomNumber = Math.floor(Math.random() * 100) + 1;
  
  if(!randomNumberArr.includes(randomNumber)){
    randomNumberArr.push(randomNumber)
  }else{
    i--
  }
}

randomNumberArr.sort((num1, num2) => num1 - num2);

const result = randomNumberArr.reduce((pre, cur) => pre + cur, 0)

console.log(randomNumberArr);
console.log(result);
profile
개발짜🏃‍♀️

0개의 댓글