Bomb Kirby Running

자습하기

자바스크립트 오답노트

^. ̫ .^ 2023. 3. 31. 23:39

728x90

01

 {
    let num = 0;

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

 

정답

0

 

 

02

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

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

정답

20

21

 

 

 

03

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

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

정답

1 2 3 4 5

 

 

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

정답

1

3

8

 

오답노트

배열을 0번 인덱스부터 10번 인덱스까지 반복문으로 돌며, i가 3으로 나누어 떨어지고, 그 나머지가 2인 경우 해당 요소를 출력합니다. 

arr배열에서는 2번, 5번, 8번 인덱스에 해당하는 요소가 출력됩니다.

그래서 답은 1 3 8이 나옵니다.

 

05

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

정답

73

 

 

06

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

정답

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

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

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

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

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

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

 

 

07

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

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

정답

1

2

3

4

 

 

 

08

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

정답

100*200*300*400*500

100200300400500600

100 200 300 400 500

 

오답노트

  • push 메소드는 배열의 맨 뒤에 새로운 요소를 추가합니다.
  • pop 메소드는 배열의 맨 뒤에 있는 요소를 제거하고 그 요소를 반환합니다.

 arr 배열의 모든 요소를 "*" 문자열로 구분하여 합친 text1 변수를 선언합니다.

이때 join() 메소드를 사용하면 배열의 모든 요소를 지정한 구분자를 이용해 하나의 문자열로 합칠 수 있습니다.

그 다음, arr 배열의 맨 뒤에 "600"이라는 요소를 추가한 후, arr 배열의 모든 요소를 연결하여 하나의 문자열로 만든 text3 변수를 선언합니다.

그리고 pop() 메소드를 사용하여 arr 배열의 맨 뒤에 있는 요소를 제거하고, 남은 요소들을 " " 문자열로 구분하여 합친 text4 변수를 선언합니다.

 

즉, text1 변수에는 "100200300400500"이 저장되어 있으며, text3 변수에는 "100200300400500600"이 저장되어 있습니다. 마지막으로 text4 변수에는 "100 200 300 400"이 저장되어 있습니다.

 

09

{
    let a, b = 10;

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

정답

4,0

 

오답노트

let a, b = 10;에서 b에 10을 할당하고, a는 초기화하지 않았기 때문에 값이 할당되지 않은 상태입니다.

그 다음 for 반복문을 통해 0부터 4까지의 값을 가지는 i 변수를 선언하고, ai 값을 할당하고, b에서 a 값을 뺍니다.

이때 b 변수는 반복문을 돌면서 변하게 되며, 초기 값이 10이므로, i가 0일 때는 b가 10이 됩니다.

i가 1일 때는 b에서 a인 1을 뺀 9가 되고, 이런 식으로 반복문이 실행됩니다.

따라서, 반복문을 실행하면 ab의 값은 각각 4와 5가 됩니다.

 

10

 {
    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();
}

정답

0.5

19.5

10.5

 

 

11

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

정답

2번

3번

4번

5번

 

오답노트

let k = 2;에서 k에 2를 할당하고, temp는 초기화하지 않았기 때문에 값이 할당되지 않은 상태입니다.

그 다음 for 반복문을 통해 0부터 2까지의 값을 가지는 i 변수를 선언합니다.

temp 변수에 k 값을 할당하고, k에 1을 더하는 연산을 수행합니다. 따라서 반복문이 처음 실행될 때는 temp 변수에 2가 할당되고, k 변수에는 3이 할당됩니다.

그리고 console.log() 함수를 사용하여 temp 변수와 "번" 문자열을 출력합니다.

이때 문자열 연결 연산자 "+"를 사용하여 temp 변수와 "번" 문자열을 하나의 문자열로 합칩니다.

이 과정을 반복문이 총 3번 실행됩니다.

즉, temp 변수의 값이 처음에는 2이고, 반복문이 실행될 때마다 1씩 증가하여 4가 됩니다.

그리고 console.log() 함수를 통해 각각 "2번", "3번", "4번" 문자열이 출력됩니다.

12

{
    let num = 10;
    num += 2;
    num -= 3;
    num *= 5;
    num /= 5;
    num %= 9;

    console.log(num)
}

정답

0

 

오답노트

let num = 10;에서 num에 10을 할당합니다.

그 다음 num += 2;를 통해 num 변수에 2를 더한 후, num -= 3;를 통해 num 변수에서 3을 뺍니다.

따라서 num 변수는 9가 됩니다.

이어서 num *= 5;를 통해 num 변수에 5를 곱한 후, num /= 5;를 통해 num 변수를 5로 나눕니다.

이렇게 하면 num 변수는 9가 되므로 결과적으로 num 변수의 값은 변하지 않습니다.

마지막으로 num %= 9;를 통해 num 변수를 9로 나눈 나머지를 num 변수에 할당합니다.

9를 9로 나눈 나머지는 0이므로, num 변수에는 0이 할당됩니다.

 

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

정답

1

1

7

 

 

14

 {
    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("**")
        }
    }
}

정답

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

 

 

15

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

정답

4,8

 

 

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

정답

3, 90

 

 

17

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

    console.log(result)
}

정답

7

 

오답노트

a = 7, b = 4에서 a 변수에 7을 할당하고, b 변수에 4를 할당합니다.

비트 OR 연산은 두 비트 중에 하나라도 1인 경우에 결과 비트를 1로 설정합니다.

 result = a | b;를 통해 ab 변수를 비트 OR 연산합니다.

0111

0100

-------

0111

다시 10진수로 바꾸면 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));
}

정답

YES

 

 

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

정답

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

정답

1