12. 병합 연산자

Chipmunk_jeong·2021년 2월 18일
0

TIL

목록 보기
12/62
post-thumbnail

병합연산자를 사용하면 짧은 문법으로 null 또는 undefined가 아닌 변수를 찾을 수 있다.

let A = null;
let B = undefined;
let C = 10;
let D = 20;

let result1 = A ?? C; // 10
let result2 = B ?? C; // 10
let result3 = A ?? B; // undefined;
let result4 = D ?? C; // 20
let result5 = B ?? A; // null;

위의 값이 도출되는 과정은 간단하다
?? 앞의 피연산자가 null 또는 undefined인지 구분을 한다.
만약 !(null || undefined) 라면 앞의 피연산자가 리턴되고,
null undefined라면 뒤의 피연산자가 리턴이 된다.

null ?? 10 -> 앞이 null이기 때문에 뒤의 10이 리턴
undefined ?? 10 -> 앞이 undefined이기 때문에 10이 리턴
null ?? undefined -> 앞이 null이기 때문에 뒤의 undefined가 리턴
10 ?? 20 -> 앞이 10이기 때문에 앞의 10이 리턴

이런식으로 진행이 된다.

또 다른 예제를 본다면

let a = null;
let b = null;
let c = 10;
let result = a ?? b ?? c ?? false;  // 10
let result0 = a ?? b ?? false; // false

저런식으로 사용이 가능하다.
조건문을 사용하여 여러줄을 작성할 것을 한줄로 줄여줄 수 있다.

우선순위가 낮은 ??

병합 연산자는 우선순위가 다른 연산자들에 비해서 낮은 편이기때문에 다중 표현식에서는 괄호로 묶어주는게 좋다.

let option1 = null;
let option2 = null;

let price1 = (option1 ?? 10000) + (option2 ?? 20000);
let price2 = option1 ?? 10000 + option2 ?? 20000;

위의 두 값은 다르게 나온다.(원하는 결과는 price1)

병합연산자는 OR,AND연산자와 함께 사용할 수 없다.

이슈때문인지 OR과 AND를 같이 쓰면 SyntaxError가 발생한다.
하지만 괄호를 묶어준다면 사용이 가능하다.(우선순위를 높여 같이 연산되는 것을 방지)

profile
Web Developer

0개의 댓글