
연산자는 프로그래밍 언어에서 특정 연산을 하도록 하는 문자
다음으로 연산자의 종류에 대해 알아보자
산술 연산자는 사칙연산과 같은 작업을 하는 연산자
+ : 덧셈 연산자- : 뺄셈 연산자* : 곱셈 연산자/ : 나눗셈 연산자% : 나머지 연산자++ : 증가 연산자-- : 감소 연산자// 순서에 따라 달라지는 값을 알아보자
let count = 1;
console.log(count++); // 1 더하기 직전의 값을 보여준다
console.log(count); // 2
console.log(++count); // 3 더한 다음의 값을 보여준다.
대입 연산자는 특정 값에 연산을 한 값을 바로 설정 할 때 사용 할 수 있는 연산자
let count = 1;
count += 3; // count = count + 3
count -= 3; // count = count - 3
count *= 3; // count = count * 3
count /= 3; // count = count / 3
console.log(count); // 1 출력된다
논리 연산자는, 불리언(Boolean) 타입 (true 혹은 false)를 위한 연산자
! : NOTNOT 연산자는
true는false로,false는true로 반환한다.
const isPerson = !true;
console.log(isPerson); // false
const isPerson = !false;
console.log(isPerson); // true
&& : ANDAND 연산자는 양쪽의 값이 둘 다 true 일때만 결과물이 true를 반환한다.
const t = true && true;
console.log(t); // true
let f = false && false;
console.log(f); // false
f = false && true;
console.log(f); // false
f = true && false;
console.log(f); // false
|| : OROR 연산자는 양쪽의 값 중 하나라도 true 라면 결과물이 true를 반환한다.
let t = true || false;
console.log(t); // true
t = false || true;
console.log(t); // true
t = true || true;
console.log(t); // true
let f = false || false;
console.log(f); // false
사칙연산에서 순서가 있듯이, 논리 연산자도 순서가 있다.
NOT -> AND -> OR
const value = !((true && false) || (true && false) || !false);
다음과 같은 코드가 있다고 가정해보자
!((true && false) || (true && false) || true);
!(false || false || true);
const value = !true; // false
즉 false 값을 가지게 된다.
두 값을 비교 할 때 사용하는 비교 연산자
두 값이 일치하는지 확인, 불린형(Boolean) 반환
즉 일치한다면true, 일치하지 않는다면false반환
const a = 1;
const b = '1';
const equals = a == b;
console.log(equals); // true
== 와 ===의 차이 점은 무엇일까?==는 데이터 타입 검사는 하지 않는다는 점이다.따라서 두 값이 일치하는지 비교 할 때에는 == 대신 ===을 지향하자.
??를 사용하여 여러 피연산자 중 그 값이확정되어 있는변수를 찾을 수 있다.
예시를 한 번 들어보자
a ?? b 라는 간단한 문장이 있을 때 결과를 알아보자
a의 값이 null, undefined도 아니면 a를 값으로 가진다.b를 값으로 가진다.?? 와 || 의 차이|| - 첫 번째 truthy 값을 반환?? - 첫 번째 정의된 값을 반환한다.let height = 0;
console.log(height || 100); // 100
console.log(height ?? 100); // 0
|| - 0을 falsy한 값으로 취급하기에 첫 번째 truthy 한 값인 100을 반환 ?? - 0과 100은 null, undefined가 아니기에 첫 번째 정의된 값인 0 반환console.log(20+30); // 50
console.log('20'+'30'); // 2030
console.log("hello"+""+2023); // hello2023
console.log(6%2); // 0
console.log(7.5%2); // 1.5
console.log(5===5); // true
console.log(5==="5"); // false
console.log(5!=5.0); // false
console.log(5>=5); // true
console.log(5<=5.0); // true