출처 : 유튜브 드림코딩 자바스크립트
const person1 = {
name : 'Ellie',
job : {
title: 'S/W Engineer',
manager: {
name : 'Bob',
},
},
};
const person2 = {
name : 'Bob',
};
💩💩💩💩💩💩💩
function printManager(person){
console.log(person.job.manager.name);
}
printManager(person1);
//printManager(person2); => error
💩💩💩
function printManager(person){
console.log(
person.job
? person.job.manager
?person.job.manager.name
: undefined
:undefined
)
}
printManager(person1);
printManager(person2); //undefined 출력
💩
function printManager(person){
console.log(person.job && person.job.manager && person.job.manager.name);
}
✨
function printManager(person){
console.log(person.job?.manager?.name);
}
printManager(person1);
printManager(person2)
Logical OR operator
- false : false, '', 0, null, undefined
- || : 앞에 있는 값이 false 일 때만 뒤에 값이 실행됌.
const name = 'Ellie';
const userName = name || 'Guest';
console.log(userName);
💩
and, or 연산자에서 '', 0, null, undefined 들도 다 false로 간주하기 때문에 원치 않게 값이 출력되지 않을 수 있다. 이 점 유의할 것!
const name = null;
const userName = name || 'Guest';
console.log(userName); //'Guest' 출력
const name1 = '';
const userName1 = name1 || 'Guest';
console.log(userName1); //'Guest' 출력
const num = 0;
const userAge = num || 'Guest';
console.log(userAge); //'Guest' 출력
✨
const name = '';
const userName = name ?? 'Guest'; // name에 값이
있다면 name을 쓰고, 값이 없을 때만
Guest
console.log(userName);
const num = 0;
const message = num ?? 'undefined'; //num에 값이 있을 때만
console.log(message);
}