Bomb Kirby Running

자습하기

자바스크립트 시험 오답노트

^. ̫ .^ 2023. 3. 4. 17:13

728x90

오늘은 수업 때 본 테스트 중 틀린 것을 정리해보려고 합니다.

틀린 문제1. 빈칸의 답은?

{
    var x = 100; 
    var y = 200; 
    var z = "javascript"; 

    console.log(__);
    console.log(__);
    console.log(__);

    //100
    //200
    //300
}

오답노트

답은 x

       y

      x+y 인데 습관적으로 z라고 생각하고 z라고 적어서 틀렸습니다...

300이 나오려면 100+200을 해야하니 답은 x+y입니다!

 

틀린 문제2. 빈칸의 답은?

{
    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
}

오답노트

배열을 불러오는 것이므로 빈칸에는 newArray로 배열을 선언해주어야 합니다.

 

틀린 문제3. 빈칸의 답은?

{
    const obj = [
        {a:100, b:200},
        {c:"javascript"}
    ];

    console.log(________);
    console.log(________);
    console.log(________);

    //100
    //200
    //javascript
}

오답노트

저는 답을 대괄호를 쓰지 않고 그냥 obj.a라고 했는데, 제가 쓴 답은 객체에서만 가능한 답이고,

문제에서는 배열이므로 인덱스를 이용해서 값을 접근 해야 합니다.

즉, 대괄호를 쓰고 안에 인덱스 번호를 넣어 출력해야하므로

그래서 답은 obj[0].a

                obj[0].b

                obj[1].c 입니다.

 

틀린 문제4. 빈칸의 답은?

{
    const obj = {
        a: 100,
        b: [200, 300],
        c: "javascript"
    }
    console.log(________);
    console.log(________);
    console.log(________);

    //200
    //300
    //200300
}

오답노트

마지막에서 단순히 obj.b만 불러와도 되었는데 obj.b[0],obj.b[1] 로 적어 틀렸습니다.

답은 obj.b[0]

       obj.b[1]

       obj.b 입니다.

 

틀린 문제5. 빈칸의 답은?

{
    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가 실행되었습니다.
}

오답노트

마지막에 this만 쓰고 .c를 안적어서 틀렸습니다.

수업시간에는 자기 자신한테 this를 쓸 수 있다 정도로 간단히 배워서 잘 이해하지 못한 것 같아서 찾아보았습니다.

this는 객체 내에서 메서드를 호출할 때 메서드가 속한 객체를 참조하기 위해 사용합니다.

this를 사용해 호출한 메서드 객체 내의 다른 속성이나 메서드를 참조하거나 변경할 수 있습니다.

그래서 this.c가 정답인 이유는 해당 메서드가 속한 obj객체의 c 속성을 참조하기 위해서 입니다.

즉, this는 obj속성을 가리키므로 this.c를 쓰면 obj.c와 같은 값이라는 것입니다.

그래서 this.c가 f의 빈칸에 들어갈 정답입니다!

 

틀린 문제6. 결과값은?

{
    let num = 0;
    while( num <= 5 ){
        document.write( num + ". 반복문이 실행되었습니다.");  
        num++;
    }
}

오답노트

document.write 안의 num을 못보고 바보같이 문자열만 적어서 틀렸습니다....

num이 0부터 시작하고 5와 같을 때 까지 반복하므로

0.반복문이 실행되었습니다.

1.반복문이 실행되었습니다.

2.반복문이 실행되었습니다.

3.반복문이 실행되었습니다.

4.반복문이 실행되었습니다.

5.반복문이 실행되었습니다.

이렇게 총 6번 0-5가 나올때까지 츨력된 것이 답입니다!

틀린 문제7. 결과값은?

{
    const str = [100, 200, 300, 400, 500];

    str.forEach((element, index, array) =>l {
        document.write(element);
        document.write(index);
        document.write(array);
    });
}

오답노트

index와 element 값 순서를 반대로 적어 틀렸습니다......

element는 forEach() 메서드의 첫번째 매개 변수로 str배열의 각 요소를 차례대로 가르키는 변수입니다.

forEach()메서드는 배열의 각 요소에 대해 콜백함수를 실행합니다.

element는 현재 배열의 요소 값입니다.

따라서 element는 100,200,300,400,500을 차례대로 가르키므로 element는100, index는 몇번째 요소인지 알려주므로 0,array는 배열 전체를 출력하는 것으로 시작해야합니다.

그래서 답은

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

입니다!