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. let
과 var
의 차이점은 무엇입니까?
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
설명: 객체는 참조 타입이기 때문에 person2
와 person
은 동일한 객체를 참조하게 됩니다. 따라서
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)
설명: async
와 await
는
비동기 작업을 쉽게 처리할 수 있게 해주며, 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
에 펼쳐진 뒤, 4
와 5
가 추가됩니다.
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의 핵심 개념을 점검하는 데 유용하며, 초급부터 중급 수준의 지식을 테스트할 수 있습니다.