JAVASCRIPT

자바스크립트 오답노트 !

Kim do hyun 2023. 3. 31. 22:53
728x90
반응형

01. 다음의 결괏값을 작성하시오. (X)

{
    let num = 0;

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

문제 풀이

이 코드는 먼저 변수 num을 0으로 초기화합니다.

그런 다음 while 루프를 시작합니다. 그러나 while 조건은 false이므로 루프 내부의 코드는 한 번도 실행되지 않습니다.

따라서 num은 여전히 0으로 유지됩니다.

마지막으로 console.log(num)은 0을 출력합니다.

 

정답

0

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

{
    let a = 6, b = 9, c = 3, result;
    result = ++a + b++ + ++c;

    console.log(result);
    console.log(a+b+c);
}

 

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

{
    function func(){
        let a = [];

        for(i=1; i<=5; i++){
            a += [i];
        }
        console.log(a);
    }
    func();
}

 

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

{
    let arr = [3,4,1,4,1,3,4,9,8,3];
        
    for(let i=0; i<10; i++){
        if(i % 3 == 2){
            console.log(arr[i]);
        }
    }

    console.log(sum);
}

 

05. 다음의 결괏값을 작성하시오. (X)

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

문제 풀이

이 코드는 함수 func를 정의합니다. 이 함수는 두 개의 매개 변수 num1과 num2를 받습니다.

함수 내부에서는 먼저 num1이 num2보다 큰지를 확인합니다. 만약 그렇다면 num1을 반환하고, 그렇지 않다면 num2를 반환합니다.

그 다음, console.log를 사용하여 func(17, 23)과 func(50, 40)의 결과를 더한 값을 출력합니다.

func(17, 23)의 결과는 23입니다. func(50, 40)의 결과는 50입니다. 따라서 console.log는 73을 출력합니다.

 

정답

73

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

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

 

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

{
    for(let i=1; i<=5; i++){
        console.log(i);

        if(i == 4){
            break;
        }
    }
}

 

08. 다음의 결괏값을 작성하시오. (X)

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

    const text1 = arr.join("*");
    arr.push("600");
    const text3 = arr.join("");
    arr.pop();
    const text4 = arr.join(" ");

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

문제 풀이

이 코드는 배열 arr을 선언하고, 그 배열에 [100, 200, 300, 400, 500]의 값들을 할당합니다.

그 다음, arr.join("*")을 사용하여 배열의 요소들을 *로 구분한 문자열을 생성하고, 그 결과를 text1에 할당합니다.

arr.push("600")을 사용하여 배열에 "600"을 추가합니다.

그 다음, arr.join("")을 사용하여 배열의 요소들을 구분없이 이어붙인 문자열을 생성하고, 그 결과를 text3에 할당합니다.

arr.pop()을 사용하여 배열에서 마지막 요소인 "600"을 제거합니다.

마지막으로, arr.join(" ")을 사용하여 배열의 요소들을 공백으로 구분한 문자열을 생성하고, 그 결과를 text4에 할당합니다.

console.log를 사용하여 text1, text3, text4의 값을 출력합니다.

text1의 값은 "100*200*300*400*500"입니다.

text3의 값은 "100200300400500"입니다.

text4의 값은 "100 200 300 400"입니다.

 

정답

100*200*300*400*500
100200300400500
100 200 300 400

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

{
    let a, b = 10;

    for(let i=0; i<5; i++){
        a = i;
        b -= a;
    }
    console.log(a, b)
}

 

10. 다음의 결괏값을 작성하시오. (X)

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

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

문제 풀이

이 코드는 함수 func를 정의합니다. 함수 내부에서는 변수 i, j, k를 각각 10, 20, 30으로 초기화합니다.

그 다음, i /= j를 사용하여 i를 i를 j로 나눈 값으로 업데이트합니다. i는 10/20인 0.5가 됩니다.

그 다음, j -= i를 사용하여 j를 j에서 i를 뺀 값으로 업데이트합니다. j는 20-0.5인 19.5가 됩니다.

마지막으로, k %= j를 사용하여 k를 k를 j로 나눈 나머지 값으로 업데이트합니다. k는 30 % 19.5인 10.5가 됩니다.

console.log를 사용하여 i, j, k의 값을 출력합니다.

i의 값은 0.5입니다.

j의 값은 19.5입니다.

k의 값은 10.5입니다.

 

정답

0.5
19.5
10.5

11. 다음의 결괏값을 작성하시오. (X)

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

문제 풀이

이 코드는 변수 k를 선언하고, 그 값을 2로 초기화합니다.

그 다음, for 루프를 사용하여 0부터 3까지의 값을 반복적으로 순회합니다. 반복마다, temp 변수에 k 값을 할당하고, k의 값을 1 증가시킵니다.

그 다음, console.log를 사용하여 "temp번" 형태의 문자열을 출력합니다. temp 값은 각 반복마다 이전 k 값이 저장되어 있으므로, 처음 4번의 출력은 "2번", "3번", "4번", "5번"이 됩니다.

 

정답

2번
3번
4번
5번

12. 다음의 결괏값을 작성하시오. (X)

{
    let num = 10;
    num += 2;
    num -= 3;
    num *= 5;
    num /= 5;
    num %= 9;
    
    console.log(num)
}

문제 풀이

 

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

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

 

14. 다음의 결괏값을 작성하시오. (X)

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

문제 풀이

이 코드는 변수 num을 선언하고, 그 값을 10으로 초기화합니다.

다음으로 num += 2를 사용하여 num의 값을 2 증가시킵니다. num은 이제 12가 됩니다.

그 다음, num -= 3를 사용하여 num의 값을 3 감소시킵니다. num은 이제 9가 됩니다.

num *= 5를 사용하여 num의 값을 5배로 곱합니다. num은 이제 45가 됩니다.

num /= 5를 사용하여 num의 값을 5로 나눕니다. num은 이제 9가 됩니다.

마지막으로 num %= 9를 사용하여 num을 9로 나눈 나머지를 계산합니다. num은 이제 0이 됩니다.

정답

0

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

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

문제 풀이

이 코드는 배열 num을 선언하고, 0부터 9까지의 값을 할당합니다.

다음으로 for 루프를 사용하여 num 배열의 모든 요소를 반복적으로 순회합니다. 반복문 내부에서는 switch 문을 사용하여 각 요소의 값이 홀수인지 짝수인지를 판별합니다.

num[i] % 2를 사용하여 num[i]를 2로 나눈 나머지를 계산합니다. 이 값이 1이면 case 1 분기로 이동합니다. 이 경우 console.log를 사용하여 num[i] 값을 출력합니다. 이 값이 홀수이므로, 예를 들어 첫 번째 반복에서는 1이 출력됩니다.

그러나 만약 num[i] % 2의 값이 0이면, default 분기로 이동합니다. 이 경우 console.log를 사용하여 "**" 문자열을 출력합니다.

정답

**
1
**
3
**
5
**
7
**
9

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)
}

 

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

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

    console.log(result)
}

문제 풀이

이 코드는 변수 a, b, result를 선언하고, a에 7을, b에 4를 할당합니다.

그 다음, | 비트 OR 연산자를 사용하여 a와 b의 비트 OR 연산을 수행합니다. 이 연산은 각 비트의 대응되는 위치에서 하나라도 1이면 결과 비트를 1로 설정합니다. 따라서 a와 b의 비트 OR 연산의 결과는 7이 됩니다.

정답

7

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

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

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

    console.log(solution(53, 93, 107));
}

 

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(15, 12, 11));
}

 

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, 40];
    console.log(solution(0, arr));
}