20240701 MON
1. Truthy, falsy
if (!undefined) {
// undefined -> false 로 봄 .
console.log(" 1. falsy 한 값임. ");
}
if (!null) {
console.log(" 2. falsy 한 값임. ");
}
if (!0) {
console.log(" 3. falsy 한 값임. ");
}
if (!-0) {
console.log(" 4. falsy 한 값임. ");
}
if (!NaN) {
console.log(" 5. falsy 한 값임. ");
}
if (!"") {
console.log(" 6. falsy 한 값임. ");
}
if (!``) {
console.log(" 7. falsy 한 값임. ");
}
console.log("-- truthy, falsy 활용 --");
let varA;
if (varA) {
console.log(" 값이 있음. ");
} else {
console.log(" 값이 없음. ");
}
function calcA() {
console.log("a");
return false;
}
function calcB() {
console.log("b");
return true;
}
console.log(calcA() && calcB());
console.log("단락평가 + truthy false");
function calcA2() {
console.log("a");
return undefined; // falsy
}
function calcB2() {
console.log("b");
return true;
}
console.log(calcA() && calcB());
console.log("객체 + 단락평가 + truthy + falsy");
function getName(person) {
if (person !== undefined && person !== null) {
return person.name;
} else {
return " 존재하지 않는 객체 정보임 ";
}
}
let person2; // 객체 생성 완
let name2 = getName(person2);
let person3 = null; // 객체 생성 완
let name3 = getName(person3);
function getName3(person) {
return person && person.name;
// person이 null 인 경우 => false
// person.name 이 undefined => false
}
let person4 = { name: "홍" }; // 리터럴 객체
let name1 = getName3(undefined);
console.log(name1);
name1 = getName3(null);
console.log(name1);
name1 = getName3(person4);
console.log(name1);