SPACE RUMI

Hi, I am rumi. Let's Splattack!

[IT] 프로덕트 개발/Javascript - 자바스크립트

[Javascript] Nullish coalescing operator / 널리쉬 병합 논리 연산자

백루미 2022. 5. 21. 17:06
반응형

[정의]

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 "-"
반응형