1. 기타 연산자들
(1) 쉼표 연산자
- 왼쪽부터 차례로 실행, 마지막 것 반환
let x = 1, y = 2, z = 3;
console.log(x, y, z); // 1 2 3
// 마지막으로 실행한 것 반환
console.log(
(++x, y += x, z *= y)
); // 12
- console.log() 안의 내용을 () 로 묶어줬기 때문에 마지막으로 계산된 것을 반환함
(2) ?? : null 병합 연산자
- || 와 달리, falsy 가 아닌 null 또는 undefined 만 대체함
- 값이 null 이나 undefined 인지 여부를 알고 싶을 때 사용
let x;
x ?? console.warn(x, 'x에 값이 없습니다.'); // undefined x에 값이 없습니다.
x = 0;
x ?? console.warn(x, 'x에 값이 없습니다.'); // 출력 안함
x = null;
x ?? console.warn(x, 'x에 값이 없습니다.'); // null x에 값이 없습니다.
let a = false;
let b = 0;
let c = '';
let d = null;
let e;
console.log(
a ?? '기본값',
b ?? '기본값',
c ?? '기본값',
d ?? '기본값',
e ?? '기본값',
); // false 0 '' '기본값' '기본값'
활용 예시
let baby1 = '홍길동';
let baby2; // 아직 이름을 짓지 못함
const nameTag1 = baby1 ?? '1번 아기';
const nameTag2 = baby2 ?? '2번 아기';
console.log(nameTag1, nameTag2); // 홍길동 2번 아기
병합 할당 연산자들
let x = 0;
let y = '';
let z = null;
x ||= 100;
y &&= '있어야 바뀜';
z ??= '기본값';
console.log(x, y, z); // 100 '' '기본값'
2. 연산자의 우선순위
💡 우선순위 높은순 (현재까지 다룬 연산자들 중)
순위 | 연산자들 |
1 | !, +, -, ++, --, typeof |
2 | ** |
3 | *, /, % |
4 | +, - |
5 | <, <=, >, >= |
6 | ==, !=, ===, !== |
7 | && |
8 | || |
9 | =, +=, -=, *=, /=, %=, **=, &&=, ||=, ??= |
10 | , |
let x = 1;
let y = 19 === 3 + 4 * 2 ** ++x;
console.log(y); // true
console.log(
2 > 3 || 4 % 2 === 0,
2 > (3 || 4) % 2 === 0,
2 > 3 || 4 % (2 === 0)
); // true false NaN
정리참조
https://www.yalco.kr/@javascript/2-8/
'JavaScript' 카테고리의 다른 글
element.classList.add()와 element.classList.toggle()의 차이점 (0) | 2023.05.25 |
---|---|
객체와 배열 미리보기 (2) | 2023.03.05 |
불리언(boolean)과 관련 연산자 (0) | 2023.03.05 |
숫자(Number)와 관련된 연산자 (0) | 2023.03.05 |
문자열에 사용되는 연산자 (0) | 2023.03.03 |