“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
- Frederick Philips Brooks
Mythical Man-Month 저자
✏️자바스크립트 오답 노트
자바스크립트 시험에서 틀린 문제들을 오답노트로 정리했습니다.
01.다음의 출력값을 보고 빈칸을 채우시오
{
var x = 100;
var y = 200;
var z = "javascript";
console.log(__);
console.log(__);
console.log(__);
//100
//200
//300
}
정답
x, y , x+y
02.다음의 출력값을 보고 빈칸을 채우시오
{
let x = 100;
let y = 200;
let z = "javascript";
x = ___;
y = ___;
z = ___;
console.log(x);
console.log(y);
console.log(z);
//300
//400
//jquery
}
오답풀이
x=200; y=400; z=jquery라고 썼는데 배열은 데이터가 변경도 가능하므로 x=300이라는 글자를 넣어주면 변환이 되어서 300으로 출력이 가능합니다.
03.다음의 출력값을 보고 빈칸을 채우시오
{
let x = 100;
let y = 200;
let z = "javascript";
x ___ 300;
y ___ 400;
z ___ "jquery";
console.log(x);
console.log(y);
console.log(z);
//400
//-200
//javascriptjquery
}
오답풀이
연산자를 사용할 때 자바스립트에서는 +=,-=과 같이 더해주는 값이 =앞으로 가서 출력이 됩니다. 그래서 정답은 +=,-=,+=이 됩니다.
04.다음의 출력값을 보고 빈칸을 채우시오
{
const arr = ________();
arr[0] = 100;
arr[1] = 200;
arr[2] = "javascript";
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
//100
//200
//javascript
}
오답풀이
배열은 여러개 데이터를 저장 할 수 있습니다. 그런데 많은 데이터를 저장하기 위해서는 new Array(100,200,"javascript") 이런 식으로 한번에 써줄 수 있습니다.
05.다음의 출력값을 보고 빈칸을 채우시오
{
const arr = [___________________];
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
//100
//200
//javascript
}
정답
100,200,javascript
06.다음의 출력값을 보고 빈칸을 채우시오
{
const obj = new Object();
obj[0] = 100;
obj[1] = 200;
obj[2] = "javascript";
console.log(______);
console.log(______);
console.log(______);
//100
//200
//javascript
}
정답
obj[0]; , obj[1]; ,obj[2];
07.다음의 출력값을 보고 빈칸을 채우시오
{
const obj = new Object();
obj.a = 100;
obj.b = 200;
obj.c = "javascript";
_____________________
_____________________
_____________________
//100
//200
//javascript
}
오답풀이
객체의 값을 구할 때는 const라는 obj안에 객체 New Object가 들어가 있습니다. 그래서 객체의 a,b,c값을 구할 때
consloe.log(obj.a);
consloe.log(obj.b);
consloe.log(obj.c); 로 구해줍니다.
08.다음의 출력값을 보고 빈칸을 채우시오
{
const obj = {____________________};
console.log(obj.a);
console.log(obj.b);
console.log(obj.c);
//100
//200
//javascript
}
오답풀이
객채 obj를 가져오는 방법은 한줄로 가져올 수 있습니다. {a:100, b;200, c:"javascript"} 한줄로 선언할 수 있습니다.
09.다음의 출력값을 보고 빈칸을 채우시오
{
const obj = [
{a:100, b:200},
{c:"javascript"}
];
console.log(________);
console.log(________);
console.log(________);
//100
//200
//javascript
}
오답풀이
배열안에 객채가 있는 값을 출력해 주어야 하므로 (obj[0].a) , (obj[0].b), (obj[0].c) 으로 출력할 수 있습니다.
10.다음의 출력값을 보고 빈칸을 채우시오
{
const obj = {
a: 100,
b: [200, 300],
c: "javascript"
}
console.log(________);
console.log(________);
console.log(________);
//200
//300
//200300
}
오답풀이
객체 안에 배열이 있는 값입니다. 출력하기 위해서는 (obj.b[0]); ,(obj.b[1]); ,(obj.b); 로 출력할 수 있습니다.
11.다음의 출력값을 보고 빈칸을 채우시오
{
const a = 100;
const b = 200;
const c = "javascript";
const obj = { _________ }
document.write(obj.a);
document.write(obj.b);
document.write(obj.c);
//100
//200
//javascript
}
오답풀이
객체 안에 변수를 저장한 값이므로 괄호 안에는 a,b,c가 들어갑니다.
12.다음의 출력값을 보고 빈칸을 채우시오
{
const obj = {
a: 100,
b: [200, ____],
c: "javascript",
d: _________(){
document.write("javascript가 실행되었습니다.");
},
e: function(){
document.write( _______ + "가 실행되었습니다."); //변수값 사용
},
f: function(){
document.write( _______ + "가 실행되었습니다."); //this를 사용
}
}
document.write(obj.a);
document.write(obj.b);
document.write(obj.b[0]);
document.write(obj.b[1]);
document.write(obj.c);
obj.d();
obj.e();
obj.f();
//100
//200,300
//200
//300
//javascript
//javascript가 실행되었습니다.
//javascript가 실행되었습니다.
//javascript가 실행되었습니다.
}
오답풀이
obj.b[0]의 값은 300입니다. 객체 안에 배열이 있을 경우 객채를 써준후 배열의 인덱스 값을 써주기 때문에 첫번째 괄호는 300
객체에는 함수도 들어갈 수 있습니다. 그러므로 두번째 괄호에는 function이 들어갑니다. 그리고 e와 f의 결과 값으로 봤을 때 e와 f 둘다 함수로 실행이 되었습니다. 그래서 javascript가 들어가야 하는데 javascript를 가지고 있는 변수는 obj c여서 obj c를 써주고 마지막 괄호는 this를 활용하는데 this는 가리키는 용어라 this c라고 쓰면 c 안에 있는 객체를 사용한다는 얘기입니다.
13.다음의 출력값을 보고 빈칸을 채우시오
{
for( let i=1; i<10; i++){
if(i % 2 == 0) {
document.write(i);
}
}
}
정답
2,4,6,8
14.다음의 출력값을 보고 빈칸을 채우시오
{
for( let i=1; i<10; i++){
if( true ) {
document.write(i);
}
}
}
정답
1,2,3,4,5,6,7,8,9
15.다음의 출력값을 보고 빈칸을 채우시오
{
const func = function(){
document.write("함수가 실행되었습니다.");
}
func();
}
정답
"함수가 실행되었습니다."
16.다음의 출력값을 보고 빈칸을 채우시오
{
if( 1 ){
document.write("조건문이 실행되었습니다.(true)");
} else {
document.write("조건문이 실행되었습니다.(false)");
}
}
정답
"조건문이 실행되었습니다. (ture)"
17.다음의 출력값을 보고 빈칸을 채우시오
{
let num = 10;
if( num == 100 ){
document.write("조건문이 실행되었습니다.(1)");
if( num == 100 ){
document.write("조건문이 실행되었습니다.(2)");
if( num == 100){
document.write("조건문이 실행되었습니다.(3)");
}
}
} else {
document.write("조건문이 실행되었습니다.(4)");
}
}
정답
"조건문이 실행되었습니다. (4)"
18.다음의 출력값을 보고 빈칸을 채우시오
{
let num = 10;
(num == 100) ? document.write("true") : document.write("false");
}
정답
"false"
19.다음의 출력값을 보고 빈칸을 채우시오
{
let num = 0;
while( num <= 5 ){
document.write( num + ". 반복문이 실행되었습니다.");
num++;
}
}
오답풀이
while문은 for문과 비슷한 형태를 가진 반복문입니다. 그래서 0이라는 값을 가지고 num이 5보다 크거나 같을 때 num은 1부터 5까지 출력되며 num++때문에 5번까지 반복문이 실행되었습니다. 라는 결과 값이 출력 됩니다. 그래서 정답은 0.반복문이 실행되었습니다. 1.반복문이 실행되었습니다. 2.반복문이 실행되었습니다. 3.반복문이 실행되었습니다. 4반복문이 실행되었습니다. 5반복문이 실행되었습니다.
20.다음의 출력값을 보고 빈칸을 채우시오
{
const str = [100, 200, 300, 400, 500];
str.forEach((element, index, array) =>l {
document.write(element);
document.write(index);
document.write(array);
});
}
오답풀이
forEach문을 이용해서 element값, index 배열이나 객체가 가진 고유의 번호 , array배열의 값을 반복해서 뽑습니다. 그래서 element값으로 먼저 100을 뽑으면 index의 값 [0]이 나오며 array배열의 값은 100,200,300,400,500이 나오는데 이거를 계속 반복합니다.
그리하여 정답은
100, [0], 100,200,300,400,500
200, [1], 100,200,300,400,500
300, [2], 100,200,300,400,500
400, [3], 100,200,300,400,500
500, [4], 100,200,300,400,500