반응형
[정의]
Nullish coalescing operator
-ish 접미사는 '~와 같은 성질을 지닌', '~같은' 이라는 뜻이다. Null-ish니깐 Null과같은 성질을 가진~~~ 쯤으로 해석해면 되겠다.
Nullish : 확실히 null이거나 undefined 이거나
coalescing : 통합과 집약, ~를 병합한다.
null, undefined 여부를 체크하여 맞다면 (??) 오른쪽에 있는 값을 리턴한다.
const testObj = {
key1: null,
key2: undefined,
key3: "rumi",
key4: true,
key5: false,
}
console.log(testObj.key1 ?? '-') // return '-'
console.log(testObj.key2 ?? '-') // return '-'
console.log(testObj.key3 ?? '-') // return 'rumi'
console.log(testObj.key4 ?? '-') // return true
console.log(testObj.key5 ?? '-') // return false
그럼 || 연산자와 다른점은 뭘까 ?
|| 연산자는 false값을 리턴하지않는다.
const testObj = {
key1: null,
key2: undefined,
key3: "rumi",
key4: true,
key5: false,
}
console.log(testObj.key1 || '-') // return '-'
console.log(testObj.key2 || '-') // return '-'
console.log(testObj.key3 || '-') // return 'rumi'
console.log(testObj.key4 || '-') // return true
console.log(testObj.key5 || '-') // return '-'
그리고 ?? 는 &&와 || 와 같이 쓸수없으므로, 함께 쓰려면 괄호로 묶어주어야 한다.
(false || null || false) ?? "-"; // returns "-"
반응형
'[IT] 프로덕트 개발 > Javascript - 자바스크립트' 카테고리의 다른 글
[Javascript] 자주쓰는 JS 메서드 정리하기 (2) | 2022.08.31 |
---|---|
[Javascript] map 메서드 그리고 reduce (3) | 2022.08.31 |
[Javascript ] 깊은복사와 얕은복사, 그리고 원시형 참조형 데이터 (0) | 2022.05.31 |
[Javascript] for, forEach, for in, for of, map으로 반복 수행하기 (2) | 2022.05.01 |
[Javascript] Object.assign, spread 연산자로 새로운 배열, 새로운 object를 만들기 (2) | 2022.05.01 |