JAVASCRIPT

자바스크립트 오답노트 네번째 !

Kim do hyun 2023. 3. 24. 11:52
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);
}

문제 풀이

배열을 선언하고 초기화합니다.
join() 메소드를 이용하여 배열의 각 요소를 구분자로 결합한 문자열을 생성합니다.
join("*") : 구분자로 *을 사용하여 문자열을 생성합니다.
join("-") : 구분자로 -을 사용하여 문자열을 생성합니다.
join("") : 구분자를 사용하지 않고 각 요소를 연속적으로 이어붙여 문자열을 생성합니다.
join(" ") : 구분자로 공백을 사용하여 문자열을 생성합니다.
console.log()를 이용하여 생성된 문자열을 출력합니다.

1 3 true


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

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

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


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

{
    function func(a, b){
        console.log(arguments[0]);
        console.log(arguments[1]);
    }
    func("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();
}


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


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

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


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

}

문제 풀이

문자열을 선언하고 초기화합니다.
문자열에서 특정 문자(a)의 위치 또는 포함 여부를 확인합니다.
indexOf("a") : 문자열에서 처음 나오는 "a"의 인덱스를 반환합니다. 문자열에 "a"가 없으면 -1을 반환합니다.
lastIndexOf("a") : 문자열에서 마지막으로 나오는 "a"의 인덱스를 반환합니다. 문자열에 "a"가 없으면 -1을 반환합니다.
includes("a") : 문자열에 "a"가 포함되어 있는지 여부를 반환합니다. 포함되어 있으면 true, 그렇지 않으면 false를 반환합니다.
console.log()를 이용하여 반환된 값을 출력합니다.

100*200*300*400*500*

100-200-300-400-500

100200300400500

100  200  300  400  500


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

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


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

문제 풀이

함수를 선언합니다.
변수 i, j, k를 선언하고 초기화합니다.
변수 i를 j로 나누고 그 결과를 i에 할당합니다.
변수 j에서 i를 뺀 값을 j에 할당합니다.
변수 k를 j로 나눈 나머지를 k에 할당합니다.
변수 i, j, k를 출력합니다.
함수를 종료합니다.

1
9
3


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

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


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

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

문제 풀이

변수 num1을 선언하고 3으로 초기화합니다.
변수 num2를 선언하고 7로 초기화합니다.
if 조건문을 사용하여, 변수 num1에 1을 더한 값이 5보다 작거나(OR) 변수 num2에 1을 더한 값이 8보다 크다면 console.log(num1)을 실행합니다.
++num1 : num1에 1을 더한 값을 반환합니다.
++num2 : num2에 1을 더한 값을 반환합니다.
console.log(num2)를 실행하여 변수 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]);
        }
    }
}


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

문제 풀이

배열 num을 선언하고 0부터 9까지의 값을 원소로 가지도록 초기화합니다.
for 반복문을 사용하여, 변수 i를 9부터 0까지 감소시키면서 아래 코드 블록을 반복적으로 실행합니다.
switch 조건문을 사용하여, 배열 num의 i번째 원소를 2로 나눈 나머지에 따라 아래 case 문 또는 default 문을 실행합니다.
num[i] % 2 : 배열 num의 i번째 원소를 2로 나눈 나머지를 반환합니다.
case 1 : 나머지가 1이면, console.log(num[i])를 실행하여 해당 원소를 출력합니다.
default : 나머지가 0이면, console.log("*")를 실행하여 별표(*)를 출력합니다.
반복문이 모두 종료된 후, 함수를 종료합니다.

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


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. 다음을 결과값을 작성하시오.

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

    console.log(result)
}

문제 풀이

변수 a를 선언하고 7로 초기화합니다.
변수 b를 선언하고 4로 초기화합니다.
& 비트 연산자를 사용하여 변수 a와 b의 값을 비트 연산합니다. & 연산자는 두 비트가 모두 1일 경우에만 1을 반환합니다.
변수 result에 비트 연산 결과를 할당합니다.

console.log(result)를 실행하여 변수 result의 값을 출력합니다. 변수 a와 b를 비트 연산한 결과 4가 출력됩니다.

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

문제 풀이

solution 함수는 세 개의 매개변수 a, b, c를 받습니다.
answer 변수를 "YES"로 초기화하고, max 변수를 선언합니다.
세 수의 합을 tot 변수에 저장합니다.
a, b, c 중 가장 큰 값을 max 변수에 저장합니다.
만약 세 수의 합에서 가장 큰 값을 뺀 값이 가장 큰 값과 같거나 작다면 삼각형을 만들 수 없으므로 answer 변수에 "NO"를 할당합니다.
answer 변수를 반환합니다.
solution 함수에 13, 33, 17을 매개변수로 전달하여 실행하고, 결과를 console.log 함수를 통해 출력합니다.

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


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

문제 풀이

solution 함수는 두 개의 매개변수 day, arr를 받습니다.
answer 변수를 0으로 초기화합니다.
arr 배열의 각 요소 x에 대하여, 일의 자리 숫자가 day와 일치하는지 확인합니다. 일의 자리 숫자를 구하기 위해 x % 10 연산자를 사용합니다. 일치한다면 answer 변수를 1 증가시킵니다.
answer 변수를 반환합니다.
arr 변수를 [25, 23, 11, 47, 53, 17, 33]로 초기화하고, solution 함수에 3과 arr 변수를 매개변수로 전달하여 실행하고, 결과를 console.log 함수를 통해 출력합니다.

3