연산자:어떠한 컴퓨터적인 계산 처리를 하기 위해서 사용할 수 있는 기호
피연산자: 연산자에 의해서 계산에 참여하게 되는 대상
const num =10;
=
연산자이다.
const num, 10은
피연산자이다.
산술 연산자
덧셈, 뺄셈, 곱셈, 나눗셈, 나머지(%) 기호로 사용이 된다.
산술 연산자 우선 순위
덧셈, 뺄셈이 같은 우선순위를 가지고
곱셈, 나눗셈, 나머지가 같은 우선순위를 가진다. 여기서 곱셈, 나눗셈, 나머지가 덧셈, 뺄셈 보다 더 우선순위다.=> 우선순위가 같은 경우에는, 앞에서부터 순차적으로 계산이 된다고 보면 된다.
문자열 연결 연산자
const arti ="hello"+"world" ;
console.log(arti) => helloworld가 출력이 된다.
문자열과 문자열을 연결한다. => 이럴 경우, 문자열 연산자가 아닌, 문자열 연결 연산자라고 부른다.
산술 연산자 중에서도 덧셈 연산자 경우에만 이렇게 사용이 가능하다.
const arithmetic1 = "10" +10;
console.log(arithmetic1); //1010, 산술 연산자를 사용할 때, 피연산자 데이터 형태가 다르다면, 일치 시킨 후에 계산시킨다. 덧셈 연산자는 피연사를 모두 문자열 데이터로 일치 시킨다.
const arithmetic2 ="10" -10;
console.log(arithmetic2) //0
const arithmetic3 ="10" *10;
console.log(arithmetic3); //100
const arithmetic4 ="10" /5;
console.log(arithmetic4); //2
const arithmetic5 ="10" %3;
console.log(arithmetic5); //1
복합 대입 연산자
다른 연산자와 대입 연산자를 혼합해서, 즉 복합적으로 사용하는 연산자
let num5 =11;
num5 %=3;
console.log(num5) //2
let num6 =2;
num6 **=2;
console.log(num6)// 4
비교 연산자
피연산자를 비교하여 옳고 그름, 즉 참과 거짓을 판단하게 하는 비교 =>참 또는 거짓을 반환함
동등 ==
일치 ===
부등 !=
불일치 !==
~보다 큰 >
~보다 크거나 같은 >=
~보다 작은 <
~보다 작거나 같은 <=
동등 연산자(==) => 피연산자 데이터가 같으면 참, 아니면 거짓
let comparison1 = 10 == 10; // '10' ==10; true(한 쪽에 자료형을 형변환 시켜서 확인함)
console.log(comparison1); //true 숫자형 데이터 값 10이 둘다 같으므로, 참
일치(===) => 자료형까지 비교하게 된다.
let comparison2 = 10 ===10;
console.log(comparison2); //true, 데이터 값 뿐만 아니라, 형태까지 같으므로 참 ,
단 '10' === 10은 false , '10'==10은 true
부등(!=)
let comparison3 = 10 != 10;
console.log(comparison3); //false 부등도 동일하게 10 != '10' false
불일치(!==)
let comparison4 = 10 !== 10;
console.log(comparison4) //false '10' !== 10 true;
삼항 연산자
피연산자 3개를 사용하여, 간단한 조건 처리를 하기 위해서 사용하는 연산자
condition ? exprlfTrue : exprlFalse
const a =10;
const b =20;
const result = a<b ? 'a가 b 보다 작습니다.' : 'a가 b보다 큽니다';
console.log(result)
const num =15;
const result = num %2 ===0 ? '2의 배수' : (num%3===0) ? '3의 배수' :'배수 찾지 못함';
console.log(result)
3항 연산자는 중첩해서 사용할 수 있다. 다만, 길어지게 되면 너무 복잡해지므로, 가독성이 많이 떨어진다.
빈문자열, 0, false, null, undefined, Nan( 10-'a') 는 거짓으로 판명된다.
const res1 = "" ? '참' : '거짓';
console.log(res1) //거짓 빈문자열, 0, undefined, false, Nan은 거짓으로 취급된다.
const res2 = 0 ? "참" : "거짓";
console.log(res2)
const res3 =undefined ? "참" : "거짓";
console.log(res3)
const res4 =null ? "참" : "거짓";
console.log(res4)
const res5 =false ? "참" : "거짓";
console.log(res5)
const res6 = 10 - 'a' ? "참" : "거짓";
console.log(res6)
const res1 = "abc" ? '참' : '거짓';
console.log(res1) // 참
const res2 = 10 ? "참" : "거짓";
console.log(res2) // 참
const res3 = -1 ? "참" : "거짓";
console.log(res3) // 참
const res4 = true ? "참" : "거짓";
console.log(res4) //참
증감 연산자: 증가연산자, 감소연산자를 일컸는다.
숫자형 데이터 값을 1 증가하거나, 1 감소한다.
let num =10;
num ++ => 11이 나온다.
증감 연산자는 앞에서 올수도 있고, 뒤에서 올 수도 있다.
전치연산 => --num, num-- => 9가 나옴
후치연산 => num++, num++ => 11이 나옴
전치든, 후치든 모두 동일한 방식으로 값이 나온다.
let num =10;
const result = num++;
console.log(result) => 10이 나온다.
let num =10;
const result = ++num;
num을 전치연산을 result에 할당 하기 전에, 10을 1 증가하여서 result에 들어가게 한다.
console.log(result) => 11이 나온다.
let num =10;
const result = num++; => result에 할당한 후에, 연산을 수행한다.
console.log(result)
전치연산은 ~하기 전에, 증가나 감소 연산을 수행한다.
후치연산은 ~한 후에 증가나, 감소 연산을 수행한다.
논리 연산자
AND 연산자(&&), OR연산자(||), 부정연산자(!)
const res =10 <20 && 10; //true && 참으로 변환하게 된다.
// 빈문자열, 0, undefined, null, false, Nan을 제외하면 모두 참이다.
console.log(res) =>10이 출력이 된다.
const res2 = true && 0 && 10 <20;
console.log(res2) => 0이 출력이 된다.(마지막에 값)
true&&false => false 뒤에는 보지도 않고, false라고 취급된다.
const res2 = "" || 10 - 'a' || 10;
console.log(res2); //마지막 나온 수가 10 true이므로, 10이 출력이 된다.
const res1 = true &&10;
console.log(res1) //10이 출력이 된다. true && 10
const res2 = !(true &&10);
console.log(res2) //false가 출력이 된다.
const res1 = true && true || true && false;
console.log(res1); //true가 나온다. true || 뒤, true와 ||이 만나면, 뒤에 것은 보지도 않고 true 값이 할당되게 된다.
const res2 = (true && true) || (true && false);
console.log(res2); //true|| 뒤, true값이 나오게 된다.