+ - * /% let a = 1 + 3 * (5 - 2) / 3;
console.log(a); // 4
let b = 7 % 3;
console.log(b); // 1
++ --// 뒤에 ++붙이면 값 먼저 보여주고 나중에 계산
let a = 1;
console.log(a++); // 1
console.log(a); // 2
// 앞에 ++붙이면 계산 먼저
let b = 1;
console.log(++b); // 2
console.log(b); // 2
= let a = 5; // a에 1을 대입
+= -= *= /= a += 1; // 아래와 같은 의미
a = a + 1 ;
a *= 1;
a = a * 1;
Boolean을 처리하기 위한 연산자 ( 조건문 사용할 때 유용 )
! NOT - 반대로 바꿈 const a = !true;
console.log(a); // false
&& AND - 두 값이 모두 참일 때만 true const a = true && true; // true
const b = true && false; // false
const c = false && true; // false
const d = false && false; // false
|| OR - 하나라도 참이면 true const a = true || true; // true
const b = true || false; // true
const c = false || true; // true
const d = false || false; // false
! → && → || const value = !(false && true || false || !true && true);
console.log(value); // true
(거짓 표현식) && expr // 거짓 표현식으로 단락 평가
(참 표현식) || expr // 참 표현식으로 단락 평가
// "단락"이란, 위 규칙에서 expr을 평가하지 않음을 의미
and &&
앞 표현식이 참이어야 뒤 표현식도 평가
→ 💥 앞 표현식이 참이면 뒤 표현식이 실행 됨
( 앞참 뒤실행 / 앞거짓 앞실행)
const n = 7;
(n % 5 === 0) && console.log('앞 표현식이 참일 때 실행됨')
// 앞 표현식이 false이므로 뒤의 문자열 출력되지 않음
console.log(false && (3 === 4)); // false
console.log('Cat' && 'Dog'); // Dog
console.log('Cat' && false); // false
console.log('' && false); // ""
console.log(false && ''); // false
OR ||
앞 표현식 평가해서 참이면 뒤는 평가할 필요 없기때문에 실행하지 않음
→ ✨ 앞 표현식이 거짓이어야 뒤 표현식이 실행됨
( 앞참 앞실행 / 앞거짓 뒤실행 )
const n = 7;
(n % 5 === 0) || console.log('앞 표현식이 거짓일 때 실행됨')
// 앞 표현식이 false이므로 뒤의 문자열 출력됨
console.log(false || (3 === 4)); // false
console.log('Cat' || 'Dog'); // Cat
console.log('Cat' || false); // Cat
console.log('' || false); // false
console.log(false || ''); // ""
🏆 단락 평가 응용
const object = { color: 'orange' };
// 객체가 아닌 다른 값이 들어오면 에러 발생 -> ( object && object.color )
const color = object.color;
console.log(color); // orange
const object = null; // (falsy)
const color = object && object.color;
console.log(color); // null
const object = { color: 'orange' }; // (truthy)
const color = object && object.color;
console.log(color); // orange
💡 참고
? 와 : 으로 작성함
하나의 표현식만 가능하기 때문에 중괄호 {} 사용할 수 없음
조건 ? 조건이 참일 때 실행되는 표현식 : 조건이 거짓일 때 실행되는 표현식
let n = 5;
console.log(n % 5 === 0 ? '5의 배수' : '5의 배수 아님'); // 5의 배수
const message = n % 5 === 0 ? '5의 배수' : '5의 배수 아님'
console.log(message); // 5의 배수
const array = [];
let text = '';
if (array.length === 0) {
text = '배열이 비어있음';
} else {
text = '배열이 비어있지 않음';
}
console.log(text); // 배열이 비어있음
const array = [];
let text = array.length === 0
? '배열이 비어있음'
: '배열이 비어있지 않음';
console.log(text); // 배열이 비어있음
== 같음 - 자료형을 구분하지 않음!= 같지 않음 const a = 5;
const b = '5';
const equals = a == b;
console.log(equals); // true
const a = true;
const b = 1;
const equals = a == b; // true
const a = null;
const b = undefined;
const equals = a == b; // true
=== 같음 - 자료형 구분함 ( 엄밀히 구분하려면 ===가 정확 )!== 같지 않음 const a = 5;
const b = '5';
const equals = a === b;
console.log(equals); // false
const a = true;
const b = 1;
const equals = a === b; // false
const a = null;
const b = undefined;
const equals = a === b; // false
< > <= >= const a = 10;
const b = 50;
const c = 50;
console.log(a < b); // true
console.log(a > b); // false
console.log(b >= c); // true