Fast Blinking Hello Kitty

문제풀기

오답노트4

코른이되고싶은코린이 2023. 3. 24. 11:57

728x90

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

{
    const str = "javascript";

    const text = str.indexOf("a");
    const text2 = str.lastIndexOf("a");
    const text3 = str.includes("a");

    console.log(text);
    console.log(text2);
    console.log(text3);
}

📝정답

1 3 true


02. 다음의 결괏값을 보고 빈칸을 채우시오.

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

    //함수1가 실행되었습니다.
    //함수2가 실행되었습니다.
}

📝정답

str 

🖋콜백함수의 문법입니다.


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

{
    function func(a, b){
        console.log(arguments[0]);
        console.log(arguments[1]);
    }
    func("1", "2");
}

📝정답

1 2


04. 결괏값을 작성하시오.
{
    function func(num, name, word){
        this.num = num;
        this.name = name;
        this.word = word;
    }
    
    func.prototype = {
        result1 : function(){
            console.log(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
        },
        result2 : function(){
            console.log(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
        },
        result3 : function(){
            console.log(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
        }
    }
    
    const info1 = new func("1", "함수", "실행");
    const info2 = new func("2", "자바스크립트", "실행");
    const info3 = new func("3", "제이쿼리", "실행");
    
    info1.result1();
    info2.result2();
}

📝정답

1. 함수가  실행되었습니다.

2. 자바스크립트가 실행되었습니다.


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

{
    function func(num, name, word){
        this.num = num;
        this.name = name;
        this.word = word;
    }

    func.prototype.result = function(){
        console.log(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
    }

    const info1 = new func("1", "함수", "실행");
    const info2 = new func("2", "자바스크립트", "실행");
    const info3 = new func("3", "제이쿼리", "실행");

    info1.result();
}

📝정답

1. 함수가  실행되었습니다.


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

{
    function func(index){
        console.log("함수가 실행되었습니다." + index);
    }
    function callback(num){
        for( let i=1; i<=1; i++){
            num(i);
        }
    }
    callback(func);
}

📝정답

함수가 실행되었습니다. 1

🖋 callback(func) 콜백함수의 출력순서에 따라 콜백함수가 먼저 실행되어 num값이 저장되었습니다. 그 값은 두번째 실행 순서 함수에 들어가 "함수가 실행되었습니다."문구 뒤에 i 값 "1"이 출력됩니다.


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

{
    let num = 1;

    do {
        num++;
        console.log("실행되었습니다.");
    } while (num <= 5);

}

📝정답

실행되었습니다. 실행되었습니다. 실행되었습니다. 실행되었습니다. 실행되었습니다.

🖋 do while문에 의해 num이 1부터 5까지 5번 반복되기 때문에 실행되었습니다가 5번 반복됩니다.

 


 

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

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

    const text1 = arr.join("*");
    const text2 = arr.join("-");
    const text3 = arr.join("");
    const text4 = arr.join(" ");

    console.log(text1);
    console.log(text2);
    console.log(text3);
    console.log(text4);

}

📝정답

100*200*300*400*500*

100-200-300-400-500

100200300400500

100  200  300  400  500


09. 다음을 최대한 짧게 약식으로 표현하시오.

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

📝정답

func=str=>str;


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

{
    function func(){
        let i = 10, j = 10, k = 30;
        i /= j;
        j -= i;
        k %= j;

        console.log(i);
        console.log(j);
        console.log(k);
    }
    func();
}

📝정답

1 9 3

🖋  i /= j; 은 (10/10)이기 때문에 '1'이 나옵니다  j -= i; 은 (10-1)이기 때문에 '9'가 나옵니다.  k %= j;은 (30/9 의 나머지값)이기 때문에 '3'이 나옵니다.            


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

{
    let k = 0;
    let temp;
    for(let i=0; i<=3; i++){
        temp = k;
        k++;
        console.log(temp + "번");
    }
}

📝정답

0번 1번 2번 3번

for문 0부터 3번까지 4번 반복됩니다. temp = k = 0으로 k값이 (k++)로 반복되어 더해집니다.


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

{
    let num1 = 3;
    let num2 = 7;
    if(++num1 < 5 || ++num2 > 8){
        console.log(num1);
    }
    console.log(num2)
}

📝정답

4, 7

🖋if 조건문에서 ' || ' 은 조건식 둘중 하나의 값이라도 참이면 실행됩니다.

조건식 (++num1 < 5 || ++num2 > 8) 는 4<5 || 8>8 이기 때문에 첫번째 조건식만 참입니다.

num1 값은 참이기 때문에 4로 출력됩니다. num2는 조건식이 false로 끝났기 때문에 let값 그대로 7이 나옵니다. 


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

{
    let num = [1, 5, 1, 2, 7, 5];
    for(let i=0; i<6; i++){
        if((i+1) % 2 == 0){
            console.log(num[i]);
        }
    }
}

📝정답

5, 2, 5

🖋i 값은 0부터 5까지 if문에 실행됩니다. if문의 (i+1) % 2 == 0  식에 0값이 들어가면 1/2의 나머지는 1이므로 거짓입니다. 다음식은 홀수번째 순서는 참이 나옵니다.

num배열의 1,3,5 번째 순서 요소는 5,2,5 가 나옵니다.


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

{
    let num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
    for(let i=9; i>=0; i--){
        switch(num[i] % 2){
            case 1:
                console.log(num[i]);
                break;
            default:
                console.log("*");
        }
    }
}

📝정답

9*7*5*3*1*

🖋for문이 9부터 0까지 의 순서이기 때문에 배열의 역순으로 나열됩니다. switch(num[i] % 2) num 배열의 요소값을 2로 나눴을 때 case 1: 나머지 1이 나오는 값은 참이고 default 값(거짓)은 *이 나옵니다.

때문에 짝수 요소는 *이 홀수 요소는 값이 나오게 됩니다.


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

{
    let cnt = 0;
    let sum = 0;
    for(let i=0; i<=7; i++){
        if(i%2 == 1){
            cnt++;
            sum = sum + i;
        }
    }
    console.log(cnt + ", "+sum);
}

📝정답

4, 16

🖋i는 0부터 7까지 반복될 때  if문 조건식(i%2 == 1) i를 2로나눴을 때 나머지가 1이 나오면 cnt++ 더해지고 sum은 합계가 나옵니다. 나머지가 1이 나오는 i값은 1,3,5,7로 cnt는 4개, sum은 1+3+5+7 = 16이 나옵니다.


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

{
    let data = [70, 80, 75, 60, 90];
    let best = 1;
    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)
}

📝정답

2, 90

🖋for문 안의 첫번째 if문에서 data[i]값이 80보다 클 경우 best가 1씩 더해집니다. 80보다 큰 data배열의 요소는 90 한개이기 때문에 best=1 값에 1이 더해져 2 값이 나옵니다.

두번째 if문에서 score < data[i] 일때 score값은 data[i] 값과 동일해집니다. 조건식은 score=0부터 시작해서 0<70; 70<80; 80<75; 80<60; 80<90; 순서로 마지막 참인 값 80<90 식으로 인해 score값은 90이 됩니다.


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

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

    console.log(result)
}

📝정답

4


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

{
    function solution(a, b, c){
        let answer="YES", max;
        let tot = a + b + c;

        if(a > b) max = a;
        else max = b;
        if(c > max) max = c;
        if(tot-max <= max) answer = "NO"; 
        
        return answer;
    }

    console.log(solution(13, 33, 17));
}

📝정답

NO


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

{
    function solution(a, b, c){
        let answer;
        if(a < b) answer = a;
        else answer = b;
        if(c < answer) answer = c; 
        return answer;
    }
    console.log(solution(2, 5, 1));
}

📝정답

1

🖋 (a ,b, c)는 (2, 5, 1)값이 지정됩니다. 첫번째 if문에서 (a<b)= (2<5)는 거짓이기 때문에 else식의 answer = b가 즉,5가 됩니다. 다음 if문에서 (c<answer)=(1<5)로 참이 되기 때문에 answer=c로 1이 됩니다.


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

{
    function solution(day, arr){
        let answer = 0;
        for(let x of arr){
            if(x % 10 == day) answer++;
        }
        return answer;
    }
    
    arr = [25, 23, 11, 47, 53, 17, 33];
    console.log(solution(3, arr));
}

📝정답

3