728x90
프로젝트를 진행하다보면
"A의 값이 없을 때 B의 값을 보여주세요!!"를 볼 수 있습니다.
이떄 Typescript 를 사용해보신 분들이라면 아시겠지만 ||
와 ??
를 봤을 것이다.
어떻게 사용하는지는 알텐데 정확히 어떤 점이 다른지가 궁금할 수 있는데,
이 글에서는 그 각각 어떤 효과를 내고, 어떤 의미를 가지는지를 알아보도록 하겠다.
Null병합 연산자( ?? )
개념
Nullish Coalescing Operator
으로 불리며 피연산자가 null
이거나 undefined
라면 해당 피연산자의 대체 값을 사용하는 연산자다.
사용법
const text = null;
console.log(text ?? '값이 없습니다.');
// 출력값 = '값이 없습니다.'
특징
- 왼쪽에 있는 피연산자가
null
이거나undefined
인 경우에만 false로 인식 - 논리연산자 OR(||) 연산자의 특수한 경우이다.
- 연산자들중 우선순위가 5번째로 낮으며,
||
보다 한단계 낮은 우선순위를 가진다. - AND(&&)와 OR(||)들과 직접 결합하여 사용 못한다.
- false로 인식될 수 있는 값들을 false로 처리하지 않는다. ( ex: 0, '' )
논리연산자 OR ( || )
개념
Logical OR
으로 불리며 피연산자들 사이에 연결하여 사용하며,
앞의 피연산자가 false인 경우 뒤의 피연산자를 검사, 해당 피연산자가 true인 경우 해당 값을 사용.
boolean
과 사용할 경우 boolean
값을 반환하지만, 다른 자료형의 값을 사용할 경우 boolean
값이 아닌 값을 반환한다.
사용방법
const text = '';
console.log(text || '값이 없습니다.');
// 출력값 = '값이 없습니다.'
특징
- 왼쪽에 있는 피연산자의 논리가 false인 경우 우측 피연산자를 출력
false
로 인식하는 값은boolean
,''
,""
,0
,undefined
,Nan
이 있다
후기
이 글을 작성하게 된 이유는 프로젝트 진행중 ??
연산자를 사용한 부분에서 error가 발생하여 해당 문제를 해결하기위해 알아보는 와중 궁금해서 찾아보았다.
두개의 연산자가 서로 비슷한 출력을 한다 하더라도,
세세하게 보면 출력되는 값이 다르다는 것을 알 수 있다.
이로써 두 연산자를 분리하여 적재저소에 잘 사용하길 바란다.
일단 나부터...
728x90
'Front > TypeScript' 카테고리의 다른 글
[React] ImageUpload 여러 기능들 (0) | 2024.04.08 |
---|