Bomb Kirby Running

자습하기

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

^. ̫ .^ 2023. 3. 10. 10:31

728x90

01. 결괏값을 작성하시오.

{
    if( null ){
        console.log("true");
    } else {
        console.log("false");
    }
}

정답

false

 

 오답노트

if문의 true 값과 false값

false : 0, null, undefined, false, ""(빈문자열)
true : 1,2,3,"0", "1", "ABC", [배열], {객체}, true

안에 null값이 들어갔으므로 답은 false

02. 결괏값을 작성하시오.

{
    let num = 0;
    while( num <= 5 ){
        num++;
        console.log(num);  
    }
}

정답

1,2,3,4,5,6

 

오답노트

num을 초기값 0으로 설정합니다.

num++로 인해 첫번째 반복부터 num값이 1씩 증가하여 1부터 출력됩니다.

6번째 반복에서 num값이 6이 되어 조건문 num<=5에 만족하지 않으므로 루프를 종료합니다.

6에서 종료되었으므로 결과값은 1부터 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

05. 결괏값을 작성하시오.

{
    const obj = {
        a: 100, 
        b: 200
    };

    for(let key in obj) { 
        console.log(key);
        console.log(obj[key]);
    }
}

 

정답

a 100

b 200

 

오답노트

for in루프는 obj 객체의 속성을 반복합니다.

key 변수에 현재의 속성 이름 a와 b가 할당됩니다.

key 변수에 할당된 이름을 출력한 후 obj[key]를 이용해 해당 속성의 값이 출력됩니다.

obj 속성의 이름과 값이 번갈아 출력되므로 답은  a 100 b 200이 됩니다.

06. 결괏값을 작성하시오.

{
    let num = 0;

    while( true ){
        num++;
        if( num == 3 ){
            continue;
        }
        if( num > 6 ){
            break;
        }
        console.log(num);
    }
}

정답

1 2 4 5 6 

 

오답노트

while(true)는 항상 참인 조건이므로 무한히 루프되는데

if문에서 num 값이 3일때는 counitnue문이 실행하여 루프의 시작점으로 돌아가 다음순회를 시작합니다.

그래서 3은 출력 되지 않습니다.

그 다음  if문에서 6을 초과할때는 break문을 실행하여 루프를 종료하므로 7이 출력되지 않습니다.

그래서 답은 1 2 4 5 6 이 나옵니다.

07. 결괏값을 작성하시오.

{
    for(let i=1; i<=5; i++){
        console.log(i);

        if(i == 3){
            break;
        }
    }
}

정답

1 2 3

 

오답노트

1부터 5까지 출력하는데 만약 i 값이 3일때 break문을 실행하여 루프를 종료합니다.

그래서 답은  1 2 3입니다.

08. 결괏값을 작성하시오.

{
    let num = 0;

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

        if(num == 1){
            break;
        }
    }
}

정답

1

 

오답노트

변수 num을 0으로 초기화 하고 while문으로 루프를 20보다 작은 경우 계속 실행됩니다.

num은 반복 될 때마다 1씩 증가되고, num이 1일 때 루프가 멈추도록 break문이 실행되어,

값은 1입니다.

 

09. 결괏값을 작성하시오.

{
    let num = 100;

    switch(num){
        case 100 : 
            console.log("100");
            break;
        case 200 : 
            console.log("200");
            break;
        default :
            console.log("300");
    }
}

정답

100

 

오답노트

num 을 100으로 초기화 하고 switch문을 사용하여 num값에 따라 다른 동작을 수행합니다.

num이 100일때 case문이 실행되어 100이 출력되고 break문으로 다음 case문이 실행되지 않습니다.

num이 200일때 case문이 실행되어 200이 출력되고 break문으로 다음 case문이 실행되지 않습니다.

num이 100도,200도 아닐때  default 문이 실행되어 300이 출력됩니다.

 

num은 100으로 설정되었으므로 답은 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

 

오답노트

direct를 1로 초기화 하고 gallery라는 함수를 정의합니다.

gallery 함수는 num이 2면 direct를 1 증가시키고 num이 1이면 direct를 1 감소시킵니다.

그러나 num이 전달되지 않아 if문에서 항상 false가 반환됩니다.

그 다음, gallery(2)를 호출하여 num이 2일 때 direct를 1증가 시킵니다.

그래서 출력된 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가 답입니다.

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

정답

T,P,I,R,C,S,A,V,A,J

 

오답노트

i가 9로 시작하여 0보다 클 때까지 반복합니다.

i-- i를 1씩 감소하면서 char[i]를 출력하므로 역순으로 출력됩니다.

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

 

오답노트

++a는 a를 1 증가시킨 후 a값을 반환합니다.

b++ 는 b를 1 반환시킨 후 b값을 1증가시킵니다.

++c c를 1 증가시킨 후 c값을 반환합니다.

그래서 result값은 2+2+4가 대입되어 8이 됩니다.

a는 1증가 되어 2가됩니다.

b는 후위 연산자이므로 2를 반환하고 b가 3으로 증가합니다.

c는 1증가되어 4가 됩니다.

18. 다음의 결괏값을 작성하시오!

{
    let i = 1;

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

정답

1 2 3 4

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