기초부터 시작하는 코딩/Javascript

Javascript를 공부해 봅시다! - 번외편. 오답노트를 해보자(2)

kebab00 2023. 3. 10. 15:28

728x90

- 자 오늘도 금요일이라 시험을 보는 날이 되었습니다!!

- 같이 문제를 보시고 제가 틀린문제를 같이 풀어보겠습니다.

// 01. 결괏값을 작성하시오.
{
    if( null ){
        console.log("true");
    } else {
        console.log("false");
    }
}

// 정답은 false
// 02. 결괏값을 작성하시오.
{
    let num = 0;
    while( num <= 5 ){
        num++;
        console.log(num);  
    }
}
// 정답은 1,2,3,4,5,6

- 문제를 보면 num이라는 변수가 0 에서 시작을 합니다.  wlile문의 조건은 5보다 작거나 같을 때 true이네요!!

- 먼저 0이었던 num이 함수안에서 num++을 만나 1이 되었고 출력되어 1이 출력되었습니다.

- 그리고 1인 num이 또 num++ 을 만나 2가 되었고 출력되었죠

- 그렇게 1,2,3,4,5까지 반복되었습니다.

- 중요한건 이 다음입니다. 5인 num이 num++을 만나 6이 된 후 console.log()를 만나 출력되었습니다.

- 만약 console.log가 num++ 보다 앞에 있었다면 0부터 시작해서 5가 출력된 뒤 6이 되어 출력되지 않았겠죠. 

// 03. 결괏값을 작성하시오.
{
    const str = [100, 200, 300, 400, 500];

    str.forEach(function(i){
        console.log(i);
    });
}
// 정답은 100,200,300,400,500
// 04. 결괏값을 작성하시오.
{
    const str = [100, 200, 300, 400, 500];

    for(let i of str){
        console.log(i);
    }
}
// 정답은 100,200,300,400,500
// 5. 결괏값을 작성하시오.
{
    const obj = {
        a: 100, 
        b: 200
    };

    for(let key in obj) { 
        console.log(key);
        console.log(obj[key]);
    }
}
// 정답은 a, 100, b, 200

-  for in 문이 나왔습니다. 이를 통해 key라는 변수에 obj의 키를 저장시켜주었습니다.

- 그리고 console.log(key) 를 통해 키를 출력을 시켜주고

- console.log(obj.[key])를 통해 obj의 값을 출력 시켜 준 것입니다.

- 근데 순서가 중요합니다 console.log(key)가 실행되고 console.log(obj.[key])가 실행되고 다시 console.log(key)가 실행된 뒤 console.log(obj.[key])가 실행되었기 때문에 정답이 a, b, 100, 200이 아니라 a, 100, b, 200이 되는 것 입니다.

// 06. 결괏값을 작성하시오.
{
    let num = 0;

    while( true ){
        num++;
        if( num == 3 ){
            continue;
        }
        if( num > 6 ){
            break;
        }
        console.log(num);
    }
}
// 정답은 12456
// 07. 결괏값을 작성하시오.
{
    for(let i=1; i<=5; i++){
        console.log(i);

        if(i == 3){
            break;
        }
    }
}
// 정답은 1,2,3
// 08. 결괏값을 작성하시오.
{
    let num = 0;

    while (num < 20){
        num++;
        console.log(num);

        if(num == 1){
            break;
        }
    }
}
// 정답은 name1, name2, name3
// 09. 결괏값을 작성하시오.
{
    let num = 100;

    switch(num){
        case 100 : 
            console.log("100");
            break;
        case 200 : 
            console.log("200");
            break;
        default :
            console.log("300");
    }
}
// 정답은 100
// 10. 결괏값을 작성하시오.
{
    func = () => {
        const str = "함수가 실행되었습니다.";
        return str;
    }

    console.log(func());
}
// 정답은 함수가 실행되었습니다
// 11. 결괏값을 작성하시오.
{
    let direct = 1;

    function gallery(num){
        if(num){
            if(num == 2) direct++;
        } else {
            if(num == 1) direct--;
        }
    }
    gallery(2);

    console.log(direct);
}
// 정답은 2
// 12. 결괏값을 작성하시오.
{
    let sum = 0;
    for(var i=1; i<=100; i++) {
        sum += i;
    };
    console.log(sum);
}
// 정답은 5050
// 13. 다음의 결괏값을 보고 빈칸을 작성하시오!
{
    const obj = {
        a: 100,
        b: 200,
        c: "javascript"
    }
    const { a:_____, b:_____, c:_____ } = obj;

    document.write(name1);
    document.write(name2);
    document.write(name3);

    //100
    //200
    //javascript
}
//  정답은 name1, name2, name3
// 14. 다음의 결괏값을 보고 빈칸을 작성하시오!
{
    const obj = {
        a: 100,
        b: 200,
        c: "javascript"
    }
    const { a, b, c } = _______;

    document.write(a);
    document.write(b);
    document.write(c);

    //100
    //200
    //javascript
}
// 정답은 obj

- 객체구조분해 할당입니다.

- 객체 obj 안에 있는 데이터를 a,b,c 라는 변수에 저장하는 문제입니다.

- 너무 복잡하게 생각할 필요없이 객체의 이름을 넣어주면 됩니다. 

// 15. 다음의 결괏값을 작성하시오!
{
    const objA = {
        a: 100,
        b: 200
    }
    const objB = {
        c: "javascript",
        d: "jquery"
    }
    const spread = {...objA, ...objB}

    document.write(spread.a);
    document.write(spread.b);
    document.write(spread.c);
    document.write(spread.d);
}
// 정답은 100 200 javascript jquery
// 16. 다음의 결괏값을 작성하시오!
{
    const char = ["J","A","V","A","S","C","R","I","P","T"];

    for(let i=9; i>=0; i--){
        console.log(char[i]);
    }
}
// 정답은 TPIRCSABAJ
// 17. 다음의 결괏값을 작성하시오!
{
    let a = 1, b = 2, c = 3, result;
    result = ++a + b++ + ++c;

    console.log(result);
    console.log(a);
    console.log(b);
    console.log(c);
}
// 정답은 8,2,3,4,
// 18. 다음의 결괏값을 작성하시오
{
    let i = 1;

    while(i < 5){
        console.log(i);
        i++;
    }
    console.log(i);
}

//1,2,3,4,5
// 19. 다음의 결괏값을 작성하시오!
{
    let num = [32, 93, 15, 86, 50];
    let sum = 0;

    for(let i=0; i > num.length; i++){
        sum = sum * i;
    };

    console.log(sum);
}
// 정답은 0
// 20. 다음의 결괏값을 작성하시오!
{
    let a, b, result;
    a = 7, b = 4
    result = a & b;

    console.log(result)
}
// 정답은 4