Bomb Kirby Running

자습하기

자바스크립트 오답노트4

^. ̫ .^ 2023. 3. 24. 10:53

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

 

오답노트

lastindexOf가 헷갈려서 틀렸습니다.😥

indexOf는 문자열에서 원하는 값의 첫번째 위치값입니다.

javascript는 위치값이 0123456789이므로, 첫번째 a가 있는 위치는 1이므로 1이 출력됩니다.

lastIndexOf는 문자열에서 원하는 값이 마지막으로 있는 위치값을 구합니다.

마지막 a가 있는 위치는 3에 해당하므로 3이 출력됩니다.

includes는 원하는 문자열이 있으면 true 없으면 false를 출력합니다.

a가 있으므로, 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

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

{
    let num = 1;

    do {
        num++;
        console.log("실행되었습니다.");
    } while (num <= 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;

 

오답노트

간단한 문제인데 바보같이 틀렸습니다........

가장 약식은 function과 괄호를 모두 생략해서 쓸 수 있습니다....😓

 

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 이므로 i에 1이 저장됩니다.
j -= i;는 10-1 이 되므로 j에는 9가 저장됩니다.

k %= j;는 30에서 9를 나눈 나머지 값이므로 3이 저장되어 출력시에 1 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번

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

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

정답

4

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

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까지 역순으로 반복되는 것을 알 수 있습니다.

for문 안 switch문을 배열 안 i값을 2로 나눈 나머지가 1이 될때 배열 안 i값을 출력, 1이 아니면 default값 *이 출력됩니다.

그래서 값을 한개씩 대입하여 보면 홀수 값들은 나머지가 1이 되고 짝수 값들은 나머지가 0이므로

답은 9*7*5*3*1이 됩니다.

 

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

 

오답노트

0부터 7까지 홀수의 개수와 홀수의 합을 구하는 문제입니다.

for문에서 i가 0부터 7까지 반복하며 1씩 증가합니다.

for문 안 if문은 i값이 홀수인 경우 cnt값이 1증가하고 sum에 i값을 더합니다.

0부터 7까지 홀수는 1,3,5,7 총 4개 이므로 cnt는 1씩 4번 증가하여 4가 됩니다.

sum값은 1일때 0+1이 되어 1이 저장되고 3일때 1+3이 되어 4, 5일때 4+5가 되어 9, 7일때 9+7이 되어 16이 됩니다.

그래서 cnt와 sum값을 출력하면 4,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

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

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