공부/오답노트

2023. 03. 03 / 자바스크립트 테스트 & 오답노트 1

우당당쿵당콩탕 2023. 3. 3. 20:25
728x90
반응형

오늘 자바스크립트 테스트를 보았고 그에 따른 오답노트를 작성하려고 한다. 🙃🙃

점수는 100점 만점에 60점. 많은 노력이 필요할 것 같다.

 

02. 다음의 출력값을 보고 빈칸을 채우시오!

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

    x = ___;   // 추가 였다면 x = 이 아니라 x += 이어야한다.
    y = ___;
    z = ___;

    console.log(x);
    console.log(y);
    console.log(z);

    //300
    //400
    //jquery
}

답 : 300 400 jquery

이 문제는 변수의 데이터 저장과 데이터 변경에 대한 문제였다.

정말 쉬운 문제였는데 나는 이걸 데이터 추가로 생각하는 바람에 틀리게 된 문제였다. 

데이터 추가인지, 변경인지 확인해야할 때는 꼭 기호를 확인하자!

 

 

08. 다음의 출력값을 보고 빈칸을 채우시오!

{
    const obj = {____________________};

    console.log(obj.a);
    console.log(obj.b);
    console.log(obj.c);

    //100
    //200
    //javascript
}

답 : a:100, b:200, c:"javascript"

여기서부터 내가 공부해야할 부분을 알았다. 바로 '객체의 데이터 저장과 표현방법' obj가 들어가는 친구들이 머리속에서 뒤섞여 줄줄이 소세지로 전부 틀리고 말았다. 😞

 

이 문제는 const obj = { 키 :값,  키 :값,  키 :값 } 표현법에 대한 문제였다.

여러 데이터를 하나의 변수에 저장하는 방식으로 데이터를 나열해주면 된다. 

 

 

09. 다음의 출력값을 보고 빈칸을 채우시오!

{
    const obj = [
        {a:100, b:200}, // 배열 안에 객체가 있는 형식이기 때문에 a와 b가 들어있는 중괄호가 [0]이며
        {c:"javascript"}// c가 들어있는 중괄호가 [1]이 된다.
    ];

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

    //100
    //200
    //javascript
}

답 : obj[0].a / obj[0].b / obj[1].c

이것 역시 객체 키와 값의 출력 방식에 대한 문제였다. console.log(obj[배열].객체); 

첫번째 배열은 [0]이고 그 안에 들은 a객체를 덧 붙여주면 되는 방식이다. 어이없게도 이걸 반대로 써서 틀렸다..ㅠ

 

10. 다음의 출력값을 보고 빈칸을 채우시오!

{
    const obj = {
        a: 100,
        b: [200, 300],   // b[0][1]로 표현이 된다.
        c: "javascript"
    }
    console.log(________);
    console.log(________);
    console.log(________);

    //200
    //300
    //200300
}

객체 안에 배열이 있는 방식으로 출력법은 아래와 같다.

console.log(obj.객체); / console.log(obj.객체[배열]); / console.log(obj.객체.객체)

 

console.log(obj.a) => 100

console.log(obj.b[0] => 200

console.log(obj.b[0][1])=>200300

 

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. 다음의 출력값을 보고 빈칸을 채우시오!

출력값이 javascript가 실행되었습니다 가 나오게하는 것이 목표

{
    const obj = {
        a: 100,
        b: [200, ____],
        c: "javascript",
        d: _________(){
            document.write("javascript가 실행되었습니다.");
        },
        e: function(){
            document.write( _______ + "가 실행되었습니다.");    // 변수값을 사용한다면 c("javascript")를 넣으면 된다. 
        },
        f: function(){
            document.write( _______ + "가 실행되었습니다.");    //this는 자기 자신이라는 의미를 담고 있기 때문에 this를 붙이고 그 뒤에.과 함께 c를 넣어준다.
        }
    }

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

이번 테스트에서 내게 제일 어려웠던 문제였다. 

함수 안에 다른 키 값과 문자를 입력하는 방식이었는데, 이게 계속 되니 아마 머리속이 복잡해졌던 것 같다.

b에는 300이라는 값이 들어가야 하고 함수를 이용한 방식이기 때문에 d에는 function e는 obj.c, f에는 this.c를 넣어준다.

 

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)");
    }
}

if else를 사용한 코드인데 나는 답이 나오지 않는다고 적었다. 단순하게 초반 조건이 성립이 되지 않기 때문에 답이 나오지 않는 다고 생각했으나 뒤에 else가 붙어있기 때문에 " 조건문이 실행되었습니다. (4) "가 나와야했다.

 

여기서 다시한번 짚고 가야할 부분은 else가 앞의 조건식에 모두 만족하지 않을 때 출력된다는 값이라는 것이다.