코딩 공부/오답노트

JAVASCRIPT자바스크립트 테스트 (4)

천서리 2023. 3. 24. 10:58
QUOTE THE DAY

“ 당신이 6개월 이상 한 번도 보지 않은 코드는 다른 사람이 다시 만드는 게 훨씬 더 나을 수 있다. ”

- 이글슨 (Eagleson)
반응형

자바스크립트 테스트

오늘 본 자바스크립트 테스트 문제와 정답을 정리하고 틀린 문제는 풀이를 해보자

 


 

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

 

오답

콜백 함수 : 함수를 두번 실행(다른 함수에 인수로 넘겨지는 함수)

다른 함수에 인자로 전달되는 함수입니다. 콜백 함수는 일반적으로 비동기적으로 실행되는 작업이 완료될 때 호출됩니다.
콜백 함수를 사용하여 비동기적으로 실행되는 작업이 완료된 후에 결과를 처리할 수 있습니다.

 

{
    function func(){
        document.write("2.함수 실행");
    }
    function callback(str){
        document.write("1.함수 실행");
        str();
    }
    callback(func);
}

 

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

 

오답

func 함수는 매개변수 index를 받아서 "함수가 실행되었습니다."와 함께 index를 출력하는 함수입니다.

callback 함수는 num 매개변수로 함수를 받습니다.

이 함수는 for 루프를 이용해서 1부터 1까지 반복하면서, 매개변수로 받은 num 함수를 실행합니다.

따라서 callback(func)를 호출하면, func 함수가 index 매개변수에 1을 받아서 실행되고,

"함수가 실행되었습니다.1"이 출력됩니다.

 

즉, callback 함수는 매개변수로 받은 함수를 실행하는 함수입니다.

callback(func)를 호출하면, func 함수가 실행됩니다. 이때 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;

 

 

 

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

 

오답

이 코드는 변수를 이용한 간단한 수학 연산을 수행하고 그 결과를 출력하는 함수 func()를 정의하고, 이를 호출하는 예시입니다.

  1. i는 10으로, j와 k는 10과 30으로 초기화됩니다.
  2. i는 j로 나누어지기 때문에, i는 1이 됩니다. (i /= j는 i = i / j와 같은 의미입니다.)
  3. j는 i의 값인 1만큼 감소하여 9가 됩니다. (j -= i는 j = j - i와 같은 의미입니다.)
  4. k는 j로 나눈 나머지인 3이 됩니다. (k %= j는 k = k % j와 같은 의미입니다.)

따라서, 위의 함수를 호출하면 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

 

오답

위 코드에서 배열 num에는 [1, 5, 1, 2, 7, 5]의 값이 할당됩니다. for 반복문은 i0부터 5까지 증가하면서 반복됩니다.

 

반복문 내부에서는, (i+1) % 2 == 0 조건이 참이 되는 경우에만 console.log() 함수가 호출됩니다.

여기서 (i+1) % 2 == 0i+1이 짝수인 경우를 검사합니다.

 

배열 num에서 i번째 원소를 출력하려면, num[i]을 사용하면 됩니다.

따라서 위의 출력 결과는, 배열 num에서 짝수 번째 원소인 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*

 

오답

위 코드에서 배열 num에는 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]의 값이 할당됩니다.

for 반복문은 i9부터 0까지 감소하면서 반복됩니다.

 

반복문 내부에서는, num[i] % 2 값에 따라 switch문의 분기가 결정됩니다.

  • num[i] % 2가 1인 경우, 즉 홀수인 경우, console.log(num[i]) 문이 실행되어 홀수가 출력됩니다.
  • num[i] % 2가 0인 경우, 즉 짝수인 경우, console.log("*") 문이 실행되어 *가 출력됩니다.

따라서 위의 출력 결과는, 배열 num에서 홀수 번째 원소는 원소 값이 출력되고, 짝수 번째 원소는 *가 출력된 것입니다.

 

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

 

오답

위 코드에서 변수 cntsum은 각각 0으로 초기화됩니다. for 반복문은 i0부터 7까지 증가하면서 반복됩니다.

반복문 내부에서는, if(i%2 == 1) 조건이 참이 되는 경우에만 cnt 변수가 1 증가하고, sum 변수에 i 값을 더합니다.

 

따라서 위의 출력 결과는, for 반복문을 7번 반복하면서 1, 3, 5, 7의 네 개의 홀수를 찾아 cnt 변수를 4로 업데이트하고, 이 홀수들의 합인 16을 sum 변수에 더한 후 출력된 것입니다.

 

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

 

오답

day는 1 이상 9 이하의 정수를 가지는 변수이며, arr은 숫자들의 배열입니다.

함수 solution은 arr 배열에서 각 원소가 10으로 나누었을 때 나머지가 day인 경우의 수를 찾아 그 개수를 반환합니다.

 

예를 들어, arr = [25, 23, 11, 47, 53, 17, 33]이고, day = 3인 경우, arr 배열에서 3으로 나누었을 때 나머지가 3인 숫자는 23과 53, 33입니다. 따라서, 함수 solution은 3를 반환합니다.

반응형
Adventure Time - BMO