Bomb Kirby Running

자습하기

자바스크립트 복습3

^. ̫ .^ 2023. 3. 26. 12:57

728x90

오늘은 금요일에 본 자바스크립트 시험에서 운 좋게 맞춘 문제도 있어 공부를 하기로 마음먹고
부족한 부분을 정리하였다.
 

아규먼트 함수

{
    function func(str1, str2){
        document.write(arguments[0]);
        document.write(arguments[1]);
    }
    func("함수실행1", "함수실행2");
}

argument는 함수를 호출할 때 전달되는 값 자체를 말한다.
함수 내에서 "arguments" 객체를 사용하면 함수가 호출될 때 전달된 모든 인자에 접근할 수 있다.
"arguments[0]"와 "arguments[1]"은 각각 "func" 함수에 전달된 첫 번째와 두 번째 인자 값을 의미한다.
함수를 호출할 때 "func("함수실행1", "함수실행2")"와 같이 두 개의 문자열 인자를 전달하였으므로, "arguments[0]"에는 "함수실행1"이, "arguments[1]"에는 "함수실행2"가 저장된다.
 

대입연산자

연산자 설명
= 변수에 값을 할당하는 가장 기본적인 대입 연산자입니다
-= 변수에서 값을 빼고, 결과를 다시 변수에 할당하는 연산자입니다.
*= 변수에 값을 곱한 후, 결과를 다시 변수에 할당하는 연산자입니다.
/= 변수에서 값을 나눈 후, 결과를 다시 변수에 할당하는 연산자입니다
%= 변수에서 값을 나눈 후, 나머지 값을 다시 변수에 할당하는 연산자입니다. 
<<= 변수를 이진수로 변환한 후, 왼쪽으로 비트를 이동시키고, 결과를 다시 변수에 할당하는 연산자입니다.
>>= 변수를 이진수로 변환한 후, 오른쪽으로 비트를 이동시키고, 결과를 다시 변수에 할당하는 연산자입니다.
>>>= 변수를 부호 없는 이진수로 변환한 후, 오른쪽으로 비트를 이동시키고, 결과를 다시 변수에 할당하는 연산자입니다.
&= 변수를 이진수로 변환한 후, 논리곱(AND) 연산을 수행한 결과를 다시 변수에 할당하는 연산자입니다.
^= 변수를 이진수로 변환한 후, 배타적 논리합(XOR) 연산을 수행한 결과를 다시 변수에 할당하는 연산자입니다.
|= 변수를 이진수로 변환한 후, 논리합(OR) 연산을 수행한 결과를 다시 변수에 할당하는 연산자입니다.

 
 

switch문

{
    const num = 100;

    switch(num){
        case 90:
            document.write("실행90");
            break;
        case 80:
            document.write("실행80");  
            break;
        case 70:
            document.write("실행70");  
            break;
        case 60:
            document.write("실행60");  
            break;
        case 50:
            document.write("실행50");  
            break; 
        default:
            document.write("0") 
    }
}

switch문 옆 표현식이 case 값에 맞으면 실행 아니면 default값이 나온다.

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

그래서 이 문제도 case 1은 나머지 값이 1을 뜻하는거다.
case 가 뭐여? 이랬는데 확실히 외워 놔야겠다...
 

for of

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

    for(let i of arr){
        document.write(i);
    }

배열에서 쓰이는 반복문이다.

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

지난번 문제에서 찍어서 맞추었으므로 다시 한번 살펴보면 x에 배열값이 들어간다.
만약 x를 10으로 나눴을 때 나머지가 3(day값)이 나올 때 1씩 증가하고 값을 반환한다.
3이 나머지인 수는 25 53 33이므로 answer을 반환하면 3이 나온다.
 
 

비트연산자

비트연산자 문제도 저번에 출제된 것의 답을 외우고 있어서 썼는데 맞았으므로 다시한번 정확히 되짚어 보았다.

//비트 연산자의 종류
& : AND 연산자 : 두 비트가 모두 1인 경우 1을 반환하고, 그 외에는 0을 반환합니다.
| : OR 연산. 두 비트 중 하나 이상이 1인 경우 1을 반환하고, 그 외에는 0을 반환합니다.
^ : XOR 연산. 두 비트가 서로 다른 경우 1을 반환하고, 그 외에는 0을 반환합니다.
~ : NOT 연산. 단항 연산자로, 비트를 반전시킵니다. 0은 1로, 1은 0으로 바뀝니다.
<< : 왼쪽 시프트(shift) 연산. 이진수를 왼쪽으로 지정된 비트 수만큼 이동시킵니다. 오른쪽으로 이동 시 왼쪽 끝자리는 0이 됩니다.
>> : 오른쪽 시프트(shift) 연산. 이진수를 오른쪽으로 지정된 비트 수만큼 이동시킵니다. 오른쪽으로 이동 시 왼쪽 끝자리는 0이 됩니다.
{
    let a, b, result;
    a = 7, b = 4
    result = a & b;

    console.log(result)
}

 
&연산자이므로 7과 4를 2진수로 바꾸어 연산했을때 두 비트가 모두 1일때 1 아니면 0을 반환한다.
7은 0111 4는 0100
0111
0100
-------
0100 
연산 결과 0100은 2진수로 변환하면 4가 되므로 4이다.
 
다음엔 더 확실히 익혀서 시험 잘 봐야지 화이팅😤