앞에 뒤에 값이 모두 truthy하면 뒤에값을 반환
const name = person && person.name;
T 앞 값이 truthy 하고 다음값도 truthy -> 다음값을 반환
T && 🔥
F 만약 앞에값이 false이면 바로 그 값을 반환 -> 만약 null이면 null 그대로 반환.
F🔥&& ...
앞에 값이 truthy하면 바로 반환
return name || "객체가 아닙니다"
T 앞 값이 truthy 하면 앞에 값을 바로 반환
T🔥||...
F 앞에값이 false면, 뒤에 값이 출력
F || 🔥
true && true //true
false && true //false
true || false //true
const getName = (person) => {
if(!person) {
return "객체가 아닙니다.";
}
return person.name;
let person;
const name = getName(person);
console.log(name)
const getName = (person) => {
return person && person.name; //undefined
let person;
const name = getName(person);
console.log(name)
const getName = (person) => {
const name = person && person.name;
return name || "객체가 아닙니다"
let person;
const name = getName(person);
console.log(name) //객체가 아닙니다.
const getName = (person) => {
const name = person && person.name;
return name || "객체가 아닙니다"
let person = {name: "다람" };
const name = getName(person);
console.log(name) //다람
&&
const name = person && person.name;
T 앞 값이 truthy 하고 다음값도 truthy -> 다음값을 반환
F 만약 앞에값이 false이면 바로 그 값을 반환 -> 만약 null이면 null 그대로 반환.
||
return name || "객체가 아닙니다"
T 앞 값이 truthy 하면 앞에 값을 바로 반환
F 앞에값이 false면, 뒤에 값이 출력