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 데이터
반응형
'자바스크립트 (JavaScript) > 이론' 카테고리의 다른 글
[ 연산자와 구문 ] 선택적 체이닝 (0) | 2023.11.02 |
---|---|
[ 연산자와 구문 ] 전개 연산자 (1) | 2023.11.01 |
[ 연산자와 구문 ] 논리 연산자 (0) | 2023.11.01 |
[ 연산자와 구문 ] 부정, 비교 연산자 (0) | 2023.11.01 |
[ 연산자와 구문 ] 산술, 할당, 증감 연산자 (0) | 2023.10.31 |