Javascript/시험 오답

03월 17일 쪽지시험_오답노트

아라라_ 2023. 3. 17. 13:07

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

Frederick Philips Brooks
Mythical Man-Month 저자
728x90

금요일마다 시험이라뇨...

목요일 밤마다 몬스터 사러 갑니다...

 

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);
}
답 : 25

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, "", 0, null, undefined

if문에는 false, "", (빈문자열), 0, null, undefined가 조건식에 들어가게 되면 false가 출력되게 됩니다. 따라서 첫 번째 출력문은 실행되지 않고 else문으로 들어가 출력문이 실행됩니다.

보기에 [], {}는 값이 있는 것으로 생각하여 true가 출력됩니다.

 


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

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

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

{
    for(var i=1; i<=1; i++){
        document.write(i);
        for(var j=1; j<=5; j++){
            document.write(j);
        }
    }
}
답 : 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

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();
}
답 : true,false

이문제에서는 연산자를 활용하여 푸는 문제입니다. 결괏값을 찾는 문제로 결괏값인 l과 m 중 l은 첫 번째는 틀리고 2번째가 맞지만 중간에 or이 있기 때문에 i가 5보다 크거나 j가 0이 아니면 true이고 아니면 false을 반환하는데 여기서는 true가 출력됩니다.

m변수는 j가 4보다 작거나 같고 k가 1보다 작으면 true이고 아니면 false일 때 여기서는 false가 출력됩니다.

그러므로 답은 true, 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);
    }
    
답 : 100, 200, 300, 400, 500, 600
600, 100, 200, 300, 400, 500

push()는 뒤에 값을 추가하는 메서드이며 unshift()는 앞에 값을 추가하는 메서드입니다.

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

{
        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);
    }
    
답 : 0

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

{
        let a, b, result;
        a = 7, b = 4
        result = a & b;
    
        console.log(result, a, b)
    }
    
답 : 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

전치연산자와 후치연산자를 사용한 문제로 

++a는 a의 값을 1 증가시키고 그 증가된 값을 반환하므로, result 변수에는 2 (증가된 a) + 2 (b) + 4 (증가된 c)의 합인 8이 할당됩니다.
a 변수는 전위 증가 연산자에 의해 1 증가되었으므로, 현재 값은 2입니다.
b + c의 합은 2 (현재 값) + 4 (증가된 c)로 6이고, 이것은 console.log(b+c)를 호출하여 출력됩니다.
마지막으로, c 변수는 전위 증가 연산자에 의해 1 증가되었으므로, 현재 값은 4입니다. 이것은 console.log(c)를 호출하여 출력됩니다.


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)
    }
    
답 : 1,90

우선 각 요소가 80보다 큰지 여부를 확인하고, 만약 그렇다면 best 변수를 1 증가시킵니다. 이는 80점을 넘은 성적의 개수를 세는 작업입니다.
그다음 배열에서 가장 높은 점수를 찾아내는 것입니다. 이를 위해 score 변수를 0으로 초기화하고, 배열 요소를 반복하면서 각 요소와 score 변수를 비교하여 더 높은 값을 score 변수에 할당합니다. 따라서 반복이 끝나면 score 변수에는 배열에서 가장 높은 점수가 저장됩니다.
그 후 console.log를 사용하여 best 변수와 score 변수를 출력합니다. 이를 통해 80점을 넘은 성적의 개수와 배열에서 가장 높은 점수가 출력됩니다.


 

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

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

if 조건문을 사용하여, 첫 번째 매개변수 num1이 두 번째 매개변수 num2보다 큰지 확인합니다. 만약 그렇다면, num1이 반환되고, 그렇지 않으면 num2가 반환됩니다.
그다음에는, 함수를 두 번 호출하여 반환된 값을 더한 후 console.log를 사용하여 결과를 출력합니다. 첫 번째 함수 호출의 결과는 23이고, 두 번째 함수 호출의 결과는 50이므로, 출력 결과는 73입니다.