오늘은 금요일에 본 자바스크립트 시험에서 운 좋게 맞춘 문제도 있어 공부를 하기로 마음먹고
부족한 부분을 정리하였다.
아규먼트 함수
{
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이다.
다음엔 더 확실히 익혀서 시험 잘 봐야지 화이팅😤