티스토리 뷰
Nullish coalescing operator 등장 배경
Null과 유사한 값에 대해서 기본 값을 설정하고 싶을 때가 많다. 가령 DBMS에서 지원하는 ifnull, NVL같은 기능 말이다.
이런 경우 과거에는 아래와 같이 코드를 작성하였다.
// name이 falsy인 경우 기본 값 설정
const a = name || "ban"
Logical OR 연산자를 사용해 falsy(false 유사 값) 값인 경우 다음 값을 할당하는 방식이다.
그런데 이 코드는 문제점이 있다. 바로 falsy에 범위이다.
falsy로 분류되는 대표적인 몇 개의 값은 아래와 같다.
falsy values
false, 0, null, undefined, “”, …
보통 우리가 기본 값을 설정하고자 하는 경우는 “” or 0인 경우가 들어가면 안된다.
왜냐하면 실 데이터에서 값이 저렇게 설정되어 있는 경우가 있기 때문이다.
그래서 위의 코드로 작성하는 경우는 실제 값을 기본 값으로 변경할 위험성을 가지고 있다.
그러면 어떠한 경우에만 기본 값을 설정하고 싶을까? 바로 null or undefined 일 때 이다.
그리고 그 조건을 충족하는 연산자가 Nullish coalecing operator이다.
예제
const foo = null ?? 'default string';
console.log(foo);
// expected output: "default string"
const baz = 0 ?? 42;
console.log(baz);
// expected output: 0
확장
optional Chaining operator (?.) 와 함께 사용 가능 하다.
const foo = { someFooProp: "hi" };
console.log(foo.someFooProp?.toUpperCase() ?? "not available"); // "HI"
console.log(foo.someBarProp?.toUpperCase() ?? "not available"); // "not available"
참고
'개발' 카테고리의 다른 글
Javascript 동작 방식 (0) | 2022.12.04 |
---|---|
[Js] Object Property에 대해 알아보자 (0) | 2022.11.06 |
[JS] function keyword 없는 함수 (0) | 2022.09.01 |
[JS] ES modules 와 Destructuring Assign(분해구조 할당) (2) | 2022.08.31 |
[Js] Proxy 객체로 Data Binding 구현하기 (0) | 2022.08.30 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- component auto import
- 스파르타 코딩클럽
- Oracle Database 19c install
- 1종 적성검사
- epel/x86_64
- vue 컴포넌트 자동 import
- postgresql 트리거
- postgresql 외래키
- express crud
- 외래키 생성
- rest api 조회 생성 수정 삭제
- rest api crud
- rest api 단건 다건
- oracle 19c 설치
- vue 전역 컴포넌트 설정
- 1종 적성검사 국가건강검진
- 1종 적성검사 과태료
- postgresql 수정시간 자동 갱신
- 티스토리챌린지
- 강서 운전면허 시험장
- 외래키 삭제
- mariadb 외래키 조회
- 1종 적성검사 신체검사
- epel repo
- 오블완
- 외래키 인덱스 생성 구문 쿼리
- unplugin-auto-import
- Oracle Database 19C 설치
- postgresql on update current_timestamp
- postgresql trigger
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함