My Melody Kawaii

JAVASCRIPT

자바스크립트 오답노트

younajeong 2023. 3. 17. 11:15

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

- Frederick Philips Brooks
Mythical Man-Month 저자
728x90

자바스크립트 오답노트

 

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

 

01. 결괏값을 작성하시오

 {
    (function(){
        console.log("함수가 실행되었습니다.");
    })();
}

오답노트

즉시 실행 함수이므로 함수가 실행되었습니다 라는 값이 뜹니다.

 

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

{
    function func(str = "함수가 실행되었습니다."){
        document.write(str);
    }
    func();
}

정답노트

함수가 실행되었습니다.

 

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

{
    let sum = 0;
    for(var i=1; i<=10; i+=2) {
        sum += i;
    };
    document.write(sum);
}

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

{
    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

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

{
    const objA = {
        a: 100,
        b: 200
    }
    const objB = {
        c: "javascript",
        d: "jquery"
    }
    const spread = {______, ______}

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

    //100
    //200
    //javascript
    //jquery
}

정답노트

...objA, ...objB

 

06. 다음의 결괏값이 나오도록 보기에서 빈칸에 해당되는 것을 모두 고르시오

{
    if( _____ ){
        document.write("조건문이 실행되었습니다.(true)");
    } else {
        document.write("조건문이 실행되었습니다.(false)");
    }

    //document.write("조건문이 실행되었습니다.(false)");
    //보기
    //true, false, 1, "1", "", 0, null, undefined, [], {}
}

오답노트

실행문에서 실행이 되지 않는 것은 false,""(빈문자열),null,undefined,0입니다.

 

07. 다음의 if문은 삼항 연산자로 변경하시오.

{
    if( num == 100 ){
        document.write("true");
    } else {
    	document.write("false");
    }
}

정답노트

(num==100)?document.write("ture"):document.write("false");

 

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

{
    for(var i=1; i<=1; i++){
        document.write(i);
        for(var j=1; j<=5; j++){
            document.write(j);
        }
    }
}

오답노트

중첩 for문은 위에 실행을 한번 후 밑에서 반복하고 다시 위로 올라오는데 i의 값은 1까지여서 1만반복에서 끝나고 j의 값으로 들어가서 1부터 5까지 반복해줍니다.

 

정답: 1, 1,2,3,4,5

 

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

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

    for(let i=0; i<num.length; i++){
        document.write(_______);
    }

    //100 200 300 400 500
}

정답노트

num[i]

 

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

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

    num.forEach(function(el){
        document.write(________);
    });

    //100 200 300 400 500
}

정답노트

el

 

 

11. 다음을 보고 리턴값을 생략하여 한줄로 표현하시오!

{
    const func = str => {
        return str;
    }
}

정답노트

const func = str => str;

 

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

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

    for(let index of _____ ){
        document.write(index);
    }

    //결과값
    //100 200 300 400 500
}

오답노트

num안의 값을 불러와야해서 for of 문을 사용한 반복문 이므로 for 변수값 of 배열이름이 나옵니다.

 

정답:num

 

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

{
    function func(){
        let i = 5, j = 4, k = 1, l, m;
        l = i > 5 || j != 0;
        m = j <= 4 && k < 1;
        document.write(l);
        document.write(m);
    }
    func();
}

오답노트

논리연산자를 사용한 문제입니다. || 은 OR &&은 AND 인데 ||은 연산자 중에 하나가 ture일 경우 값을 반환하고 &&은 두개의 연산자가 모두 ture일 경우 값을 반환하게 됩니다. 문제를 보면 그러므로 변수 l은 i가 5보다 크다에 만족하지 않지만  j가 0이 아니라다는 조건에 만족하는데 OR의 논리연산자여서 true를 반환하게 되고 m은 j는 5인데 4보다 커서 조건에 만족하지 않고 k또한 조건에 만족하지 않는데 논리연산자 &&은 값이 둘다 ture ture를 쓰게 되는데 조건에 만족하지 않아서 flase가됩니다.

 

정답: l= ture, m= false

 

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

{
    const arr = [100, 200, 300, 400, 500];
    const text = arr.push(600);

    document.write(arr);

    const arr2 = [100, 200, 300, 400, 500];
    const text2 = arr2.unshift(600);

    document.write(arr2);
}

정답노트

arr = 100,200,300,400,500,600

arr2 = 600,100,200,300,400,500

 

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

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

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

오답노트

a,b

 

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

{
    let num = 0;

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

오답노트

false로 실행문이 작동하지 않는데 이때 num의 값은 0이므로 0이 그대로 반환됩니다.

 

정답:0

 

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

{
    let a, b, result;
    a = 7, b = 4
    result = a & b;

    console.log(result, a, b)
}

오답노트

result와 a,b의 값을 구하는 문데입니다. result값은 비트 연산자 문제이므로 &AND 문제입니다. 따라서 2진법으로 값을 구하면 

7은 0000 0111 4는 0000 0100이 되는데 AND는 1일 때 1 0일 때 0으로 계산하여서 0000 0100이 되고 정답은 4가 나오는데 

a,b의 값은 그대로 7,4가 나옵니다

 

정답:4,7,4

 

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

{
    let a = 1, b = 2, c = 3, result;
    result = ++a + b++ + ++c;

    console.log(result);
    console.log(a);
    console.log(b+c);
    console.log(c);
}

정답노트

정답: 8, 2, 7, 4

 

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

{
    let data = [70, 80, 75, 60, 90];
    let best = 0;
    let score = 0;

    for(let i=0; i<data.length; i++){
        if(data[i]>80) {
            best++;
        }
        if(score < data[i]) {
            score = data[i];
        }
    }

    console.log(best, score)
}

오답노트

제일 높은 점수를 찾는 if문 입니다. 먼저 for문을 살펴보면 data.length의 값을 반복문으로 출력하게 되면 70,80,75,60,90이 차례대로 나오는데 차례대로 출력하는 가운데 if문 만약에 data[i]>80보다 크면 best는 ++로 출력이 됩니다. 출력되는 숫자를 보면 90이 있으므로 best는 ++가 되어서 0이 1이 되어 출력됩니다. 또 그런데 조건문 if가 있으므로 값이 끝나지 않고 출력이 되는데 여기서 score값이 0인데 data i의 값이 먼저 70이 출력이 됩니다 그럼 조건에 맞으니 다음 조건에 보면 score값은 data[i]의 값과 같다고 합니다. 그러면 score이 70이 되고 다시 data[i]의 값이 80으로 출력이 되는데 조건에 맞아서 score값은 80이 됩니다 그리고 또 차례대로 75,60이 출력이 되지만 80보다 작으므로 score은 계속 80인데 마지막 90이 출력되면서 조건에 맞게 되고 score의 값은 90이 됩니다.

 

정답:1, 90

 

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

{
    function func(num1, num2){
        if(num1 > num2) return num1
        else return num2
    }
    console.log(func(10, 23) + func(40, 50))
}

정답노트

73