본문 바로가기
자바스크립트 (JavaScript)/이론

[ 연산자와 구문 ] Nullish 병합, 삼항 연산자

by Hwanii_ 2023. 11. 1.
728x90
//  Nullish 병합 (Nullish Coalescing)

const n = 0

//  0 || 7 이고,

//  => || 연산자는 가장 첫번째로 나온 true 데이터 반환.

//  따라서 num1 변수에는 7이 저장 된다.
const num1 = n || 7

console.log(num1)   //  7

//  그런데, 이때 숫자 0 데이터를 true 또는 false 데이터로 사용 하고 싶은게 아니라,
//  유효한 숫자 데이터로 사용을 하고 싶으면 어떻게 해야 할까 ?

//  이때, Nullish 병합 연산자를 사용 할 수 있다. => ?? 기호를 사용 한다.
//  Nullish 병합 연산자는 null 과 undefined 를 제외한 나머지 데이터를 만나면
//  => 그 즉시 처음에 만나는 데이터를 반환 한다.
//  따라서 숫자 0 은 true 인지 false 인지 체크를 하지 않고,
//  0 ?? 7 은 제일 처음 만나는 피연산자 데이터가 0 이기 때문에,
//  num2 에는 0이 저장 된다.
const num2 = n ?? 7
console.log(num2)   //  0

//  null 데이터를 가장 맨 처음에 만났으므로, 건너뛰고, 그 다음에 나오는 데이터를 반환.
console.log(null ?? 1)  //  1

//  undefined 데이터를 가장 맨 처음에 만났으므로, 건너뛰고, 그 다음에 나오는 데이터를 반환.
console.log(undefined ?? 2) //  2

//  둘다 Nullish 연산자에 체크 되는 데이터인 null 과 undefined 인데,
//  그 다음에 나오는 데이터가 없기 때문에,
//  제일 마지막에 위치 하는 데이터인 undefined 가 출력 된다.
console.log(null ?? undefined)  //  undefined

console.log(null ?? 1 ?? 2) //  1

console.log(false ?? 1 ?? 2)    //  false

console.log(0 ?? 1 ?? 2)    //  0

 

Nullish 연산자는 null 과 undefined 만 체크 한다.

그래서 null / undefined 데이터가 체크 되면, 해당 데이터들은 건너 뛰고,

그 다음으로 나오는 null / undefined 데이터를 제외한 모든 데이터 중에서,

첫번째로 나오는 데이터가 출력 된다.

만약에, 모든 데이터가 null 또는 undefined 인 경우에는, 제일 마지막에 위치 하는 null 또는 undefined 가 출력 된다.

 

 

 

 

//  삼항 (Ternary)

const a = 1

if (a < 2) {    //  a는 2보다 작으므로, '참 !' 이 출력.
    console.log('참 !')
} else {
    console.log('거짓 !')
}

//  if-else 와 같은 문을 삼항 연산자를 사용 해서 간단하게 작성 가능 하다.
//  조건식 ? '참일 때 실행 되는 코드' : '거짓일 때 실행 되는 코드'
console.log(a < 2 ? '참 !' : '거짓 !')

//  간단하기 때문에, 자주 사용 된다.

function getAlert(message) {
    return message ? message : '메세지가 존재 하지 않습니다 !'
}

console.log(getAlert('안녕하세요 ~'))    //  안녕하세요 ~

console.log(getAlert()) //  인자가 없으므로 => 메세지가 존재 하지 않습니다 !

//  인자가 없다 == ' ' == 빈 문자열 == false 데이터

 

반응형