코딩 스쿨 JavaScript

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

JavaScript Quiz

JavaScript Quiz: JavaScript 기초부터 고급까지 지식을 테스트하는 퀴즈

아래는 JavaScript의 기초 개념부터 고급 개념까지 테스트할 수 있는 퀴즈입니다. 각 질문에는 객관식코딩 문제가 포함되어 있으며, 이를 통해 JavaScript에 대한 이해를 확인할 수 있습니다.


1. JavaScript에서 변수를 선언하는 방법으로 올바른 것은?

a) var x = 10;

b) let x = 10;

c) const x = 10;

d) 위의 모든 것

정답: d) 위의 모든 것


2. 다음 코드의 결과는 무엇입니까?

let x = 5;
let y = '5';

console.log(x == y);

a) true

b) false

c) undefined

d) NaN

정답: a) true

설명: == 연산자는 자료형을 비교하지 않고 값만 비교하므로 두 값이 동일하다고 간주됩니다.


3. letvar의 차이점은 무엇입니까?

a) let은 함수 스코프를 가지고, var는 블록 스코프를 가집니다.

b) var는 함수 스코프를 가지고, let은 블록 스코프를 가집니다.

c) let은 상수이고, var는 변수를 나타냅니다.

d) 두 선언 방식은 동일합니다.

정답: b) var는 함수 스코프를 가지고, let은 블록 스코프를 가집니다.


4. 다음 코드에서 출력되는 값은 무엇입니까?

let x = 10;
{
    let x = 2;
    console.log(x);
}
console.log(x);

a) 10, 2

b) 2, 10

c) 2, 2

d) 10, 10

정답: b) 2, 10

설명: let은 블록 스코프이므로 내부 블록에서 선언된 x는 외부의 x와 다른 변수입니다.


5. JavaScript에서 객체의 속성에 접근하는 올바른 방법은 무엇입니까?

let person = { name: "John", age: 30 };

a) person.name

b) person["name"]

c) person[name]

d) a)와 b)

정답: d) a)와 b)

설명: 객체의 속성에 접근할 때는 점 표기법(person.name)과 대괄호 표기법(person["name"])을 사용할 수 있습니다.


6. 다음 코드의 결과는 무엇입니까?

console.log(typeof null);

a) null

b) object

c) undefined

d) string

정답: b) object

설명: null은 JavaScript에서 데이터형이 object로 간주됩니다. 이는 역사적인 이유로 남아있는 자바스크립트의 버그입니다.


7. 다음 코드의 결과는 무엇입니까?

let fruits = ["Apple", "Banana", "Orange"];
fruits.push("Mango");
console.log(fruits.length);

a) 3

b) 4

c) 5

d) undefined

정답: b) 4

설명: push() 메서드는 배열의 끝에 요소를 추가하며, 배열의 길이는 4가 됩니다.


8. const로 선언한 변수에 대한 설명으로 틀린 것은?

a) const 변수는 재할당할 수 없다.

b) const 변수는 선언 시 값을 할당해야 한다.

c) const 변수에 저장된 객체의 속성은 변경할 수 없다.

d) const 변수는 블록 스코프를 가진다.

정답: c) const 변수에 저장된 객체의 속성은 변경할 수 없다.

설명: const로 선언된 객체는 변수 자체는 재할당할 수 없지만, 객체의 속성은 변경할 수 있습니다.


9. 다음 코드의 결과는 무엇입니까?

let x = 5;
let y = 10;

[x, y] = [y, x];
console.log(x, y);

a) 5, 10

b) 10, 5

c) undefined

d) SyntaxError

정답: b) 10, 5

설명: 배열 구조 분해 할당을 사용하여 두 변수의 값을 교환할 수 있습니다.


10. 다음 코드의 결과는 무엇입니까?

function test() {
  console.log(a);
  var a = 1;
}

test();

a) 1

b) undefined

c) ReferenceError

d) TypeError

정답: b) undefined

설명: var호이스팅(hoisting)되므로, 변수가 함수 상단에서 선언된 것으로 간주되지만, 실제 값은 선언 이후에 할당되므로 undefined가 출력됩니다.


11. JavaScript에서 === 연산자가 의미하는 것은 무엇입니까?

a) 값과 자료형을 모두 비교한다.

b) 값만 비교한다.

c) 자료형만 비교한다.

d) 값과 자료형을 모두 무시하고 비교한다.

정답: a) 값과 자료형을 모두 비교한다.

설명: === 연산자는 엄격한 동등 연산자로, 값뿐만 아니라 자료형도 비교합니다.


12. JavaScript에서 비동기 작업을 처리하는 방법 중 하나는 무엇입니까?

a) forEach

b) setTimeout

c) parseInt

d) toString

정답: b) setTimeout

설명: setTimeout은 일정 시간이 지난 후 함수를 비동기적으로 실행하는 방법입니다.


13. 다음 코드의 출력 결과는 무엇입니까?

let person = { name: "John" };
let person2 = person;
person2.name = "Doe";

console.log(person.name);

a) John

b) Doe

c) undefined

d) Error

정답: b) Doe

설명: 객체는 참조 타입이기 때문에 person2person은 동일한 객체를 참조하게 됩니다. 따라서 person2.name을 변경하면 person.name도 변경됩니다.


14. 프로미스를 사용하는 코드는 무엇입니까?

a) let promise = new Promise((resolve, reject) => {...});

b) let promise = Promise();

c) let promise = setTimeout(...);

d) let promise = forEach(...);

정답: a) let promise = new Promise((resolve, reject) => {...});

설명: 프로미스는 비동기 작업을 처리하는 방법 중 하나로, Promise 객체를 생성하여 사용합니다.


15. 다음 코드에서 greet 함수가 반환하는 값은 무엇입니까?

const greet = (name = "Guest") => "Hello, " + name + "!";
console.log(greet());

a) Hello, Guest!

b) Hello, !

c) undefined

d) Error

정답: a) Hello, Guest!

설명: 기본 매개변수로 name이 설정되어 있어, 인자를 전달하지 않으면 Guest가 사용됩니다.


16. for...of 반복문은 어떤 데이터에 사용됩니까?

a) 객체

b) 문자열

c) 배열

d) b)와 c)

정답: d) b)와 c)

설명: for...of 반복문은 배열이나 문자열과 같은 이터러블 객체에 사용됩니다.


17. async 함수와 await 키워드의 기능은 무엇입니까?

a) 동기적으로 코드를 실행한다.

b) 비동기 작업을 더 쉽게 처리할 수 있게 한다.

c) 함수의 실행을 멈추고, 서버에서 응답을 기다린다.

d) b)와 c)

정답: d) b)와 c)

설명: asyncawait

비동기 작업을 쉽게 처리할 수 있게 해주며, await는 프로미스가 해결될 때까지 대기합니다.


18. 다음 코드의 실행 결과는 무엇입니까?

let x = [1, 2, 3];
let y = [...x, 4, 5];
console.log(y);

a) [1, 2, 3, 4, 5]

b) [4, 5, 1, 2, 3]

c) [1, 2, 3]

d) Error

정답: a) [1, 2, 3, 4, 5]

설명: 스프레드 연산자(...)는 배열이나 객체의 요소를 펼칩니다. x 배열의 요소가 y에 펼쳐진 뒤, 45가 추가됩니다.


19. 다음 코드에서 add 함수는 어떤 결과를 반환합니까?

function add(a, b = 5) {
  return a + b;
}

console.log(add(3));

a) 3

b) 5

c) 8

d) undefined

정답: c) 8

설명: 함수에 기본 매개변수 b = 5가 설정되어 있으므로, add(3)을 호출하면 b는 기본값 5로 설정됩니다.


20. 다음 코드의 출력 결과는 무엇입니까?

let a = 10;

function outer() {
  let b = 20;

  function inner() {
    console.log(a + b);
  }

  return inner;
}

let result = outer();
result();

a) 30

b) undefined

c) ReferenceError

d) NaN

정답: a) 30

설명: 클로저는 외부 함수의 변수를 참조하는 내부 함수를 반환할 때 사용되며, inner 함수는 outer 함수의 b와 외부의 a를 참조할 수 있습니다.


요약

JavaScript 퀴즈변수, 함수, 객체, 배열, 그리고 비동기 처리, 프로미스, 클로저 등의 다양한 주제를 다룹니다. 각 문제는 JavaScript의 핵심 개념을 점검하는 데 유용하며, 초급부터 중급 수준의 지식을 테스트할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com