산술 연산자 (Arithmetic)
console.log(1 + 2); // 3
console.log(5 - 7); // -2
console.log(3 * 4); // 12
console.log(10 / 2); // 5
console.log(7 % 5); // 2 (나머지 연산자)
할당 연산자 (Assignment)
// a = a + 2;
a += 2;
// a = a - 2;
a -= 2;
// a = a * 2;
a *= 2;
// a = a / 2;
a /= 2;
// a = a % 2;
a %= 2;
증감 연산자 (Increment & Decrement)
let a = 3;
console.log(a++); // 3
console.log(a); // 4
let a = 3;
console.log(++a); // 4
console.log(a); // 4
let a = 3;
console.log(a--); // 3
console.log(a); // 2
let a = 3;
console.log(--a); // 2
console.log(a); // 2
부정 연산자 (Negation)
console.log(!true) // false
console.log(!false) // true
console.log(!0) // true
console.log(!!0) // false
console.log(!!!0) // true
console.log(!null) // true
console.log(!undefined) // true
console.log(!NaN) // true
console.log(!'') // true
비교 연산자 (Comparison)
const a = 1;
const b = 3;
// 동등(형 변환)
console.log(a == b) // false
// 부등(형 변환)
console.log(a != b) // true
// 일치 (추천)
console.log(a === b) // false
// 불일치
console.log(a !== b) // true
console.log(a > b) // false
console.log(a < b) // true
console.log(a >= b) // false
console.log(a <= b) // true
논리 (Logical)
// AND 연산자
console.log(true && true) // true
console.log(true && false) // false
console.log(false && true) // false
console.log(false && false) // false
console.log(1 && 0) // 0
console.log(1 && 2 && 0) // 0
console.log(1 && 0 && 2) // 0
console.log(0 && 1 && 2) // 0
console.log('A' && 'B' && '') // ''
console.log('A' && 'B' && 'C') // 'C'
// OR 연산자
console.log(true || true) // true
console.log(true || false) // true
console.log(false || true) // true
console.log(false || false) // false
console.log(0 || 1) // 1
console.log(false || 0 || {}) // {}
console.log(false || [] || null) // []
console.log(function () {} || undefined || '') // f () {}
console.log(false || 0 || NaN) // NaN
Nullish 병합 (Nullish Coalescing)
const n = 0;
// OR 연산자를 사용한 경우 (truthy값을 찾아 반환합니다.)
const num1 = n || 7;
console.log(num1) // 7
// Nullish 병합 연산자를 사용한 경우 (null, undefined를 제외한 값을 반환합니다.)
const num2 = n ?? 7
console.log(num2) // 0
console.log(null ?? 1) // 1
console.log(undefined ?? 2) // 2
console.log(null ?? undefined) // undefined
console.log(null ?? 1 ?? 2) // 1
console.log(false ?? 1 ?? 2) // false
console.log(0 ?? 1 ?? 2) // 0
삼항 연산자 (Ternary)
const a = 1;
if (a < 2) {
console.log('참!')
} else {
console.log('거짓!')
}
// 삼항 연산자
// 조건 ? 참 : 거짓
console.log(a < 2 ? '참!' : '거짓!') // 참!
function getAlert(message) {
return message ? message : '메시지가 존재하지 않습니다.'
}
console.log(getAlert('안녕하세요~')) // 안녕하세요~
console.log(getAlert('')) // 메시지가 존재하지 않습니다.
전개 연산자 (Spread Operator)
const a = [1, 2, 3];
const b = [4, 5, 6];
const c = a.concat(b)
console.log(c) // [1, 2, 3, 4, 5, 6]
const d = [...a, ...b]
console.log(d) // [1, 2, 3, 4, 5, 6]
const a = { x: 1, y: 2 }
const b = { y: 3, z: 4 }
const c = Object.assign({}, a, b)
console.log(c) // { x: 1, y: 3, z: 4 }
const d = { ...a, ...b }
console.log(d) // { x: 1, y: 3, z: 4 }