Blinking Hello Kitty Angel

javascript문제풀이

자바스크립트 테스트 오답풀이

xoouxa 2023. 3. 17. 12:10

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

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

안녕하세요 o((>ω< ))o 오늘은 자바스크립트 테스트 오답풀이를 한 번 해보도록 하겠습니다.

여러분들도 함께 지금까지 공부 한 내용들을 제대로 배웠는지 간단하게 테스해보세요!

 

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

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

정답 : "함수가 실행되었습니다."

 

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

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

정답 : " 함수가 실행되었습니다. "

설명 : 파라미터 함수이기 때문에 str = "함수가 실행되었습니다."를 출력합니다.

매개변수인 줄 알고 func()안에 값이 안 써있어서 출력이 안 되는 줄 알았던 바보.. 는나 😑

 

 

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

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

정답 : 25

설명 :var i = 1부터 10까지 출력 되지만 i+=2기 때문에 2씩 출력됩니다. 

하지만 1부터 시작하기 때문에 1 3 5 7 9를 더하면 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

설명 : obj 객체의 a, b, c 속성의 값은 각각 100, 200, "javascript"입니다.

const 키워드를 사용하여 obj 객체를 상수로 선언하였고, 디스트럭처링을 사용하여 변수 a, b, c에 각각 obj 객체의 a, b, c 속성의 값이 할당되었습니다.

 

 

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
}

정답 : ...obj A ...obj B

설명 : 객체 병합에 스프레드 문법을 사용하는 예제입니다. objA와 objB 객체를 스프레드 문법으로 병합하여 spread 객체에 저장하고, document.write() 메소드를 사용하여 해당 객체의 속성에 접근하여 값을 출력합니다.

spread 객체에는 objA와 objB의 속성이 모두 포함되어 있으므로, spread.a와 spread.b에는 각각 100과 200의 값이 저장됩니다. 그리고 spread.c와 spread.d는 각각 "javascript"와 "jquery"의 값이 저장됩니다.

 

 

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

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

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

정답 : false, null , " ",  undifined, 0

설명 : false, null , " ",  undifined, 0이 빈칸에 들어가면 무조건 false가 실행됩니다.

 

 

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

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

정답 : (num == 100) ? document.write(true) : document.write(false);

설명 : 삼항연산자를 쓸 때 if는 필요하지 않기에 생략하고 , ?을 사용하고, 중간에 :을 넣어줘야 합니다.

 

 

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

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

정답 : 1 12345

설명 : i의 값은 1이고 i는 1보다 크거나 작기 때문에 i의 값은 1입니다.

j는 1이고 5보다 작거나 같기 때문에 12345를 출력할 수 있습니다.

 

 

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]

설명 : num의 i 값을 출력하기 때문입니다.

 

 

10.다음의 결과값을 보고 빈칸을 작성하시오.

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

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

    //100 200 300 400 500
}

정답 : el

설명 : for each 함수이고, 요소들을 출력 해야 하기 때문에 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

 

 

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이기 때문에 500 뒹 600을 넣어줍니다. unshift이기 때문에 600을 앞에 넣어주고 나머지 값을 출력시켜 줍니다.

 

 

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

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

    for(let key in obj) { 
        console.log(key);
    }
}{
    const obj = {
        a: 100, 
        b: 200
    };

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

정답 : a b

설명 : key값을 불러오기 때문에 ab가 출력됩니다.

 

 

16.다음의 결과값을 작성하시오.

{
    let num = 0;

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

정답 : 0

설명 : while은 반복문인데  false 가 쓰여 있으므로 실행되지 않아 초기값인 0이 출력됩니다.

 

 

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

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

    console.log(result, a, b)
}

정답 : 4 7 4

설명 : & AND 연산자 입니다. AND 연산자는 둘 다 같으면 1, 다르면 0이 출력됩니다.

따라서 7을 2진수로 바꾸면 0111, 4를 2진수로 바꾸면 0100입니다.

0000 0111

0000 0100 은 0000 0100이 되니까 2의2승인 4가 출력되고 

a의 값은7, b의 값은 4이기 때문에 답은 474 입니다.

 

 

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

설명 : result의 값은 전치연산자 a,c 후치연산자 b를 계산하면 a = 2, b = 2, c = 4가 되기 때문에 8이 됩니다.

console.log가 ++ 뒤에 나오기 때문에 a , b+c, c의 값은 전,후치 연산이 다 돼서 출력 돼야 합니다.

따라서 a = 2, b=2,c=4 =7 , c = 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)
}

정답 : 1 90

설명 : data가 80보다 큰 조건이 충족 된다면 best가 1 증가합니다.

90은 80보다 크므로 조건에 만족해 best = 0이 ++ 돼 1이 됩니다.

또한 score 의 초기값은 0입니다. data 값은 70부터 시작해 0 < 70이 조건에 맞으니 score에 70이 들어갑니다.

for문은 반복이기 때문에  70이 들어간 뒤 data[i]에 80이 들어가고 75,60도 넣고 마지막으로 90을 넣습니다.

90보다 큰 값은 없고 score에 90이 들어가므로 답은 90입니다.

 

 

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

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

정답 : 73

설명 : num 1은 func(10,23) 중 앞에 있는 게 num1입니다.

따라서 num1은 10, 40인데 num2보다 num1이 크다면 num1을 출력하고 그렇지 않으면 num2가 실행 됩니다.

num2가 더 크기 때문에 23과 50이 출력돼서 둘을 더해주면 73이 됩니다.

'javascript문제풀이' 카테고리의 다른 글

정보처리기사 오답노트  (9) 2023.04.22
자바스크립트 기초 연습문제  (14) 2023.03.25
자바스크립트 기초 연습문제  (16) 2023.03.10