
참이나 거짓을 의미하지 않는 값도, 조건문 내에서 참이나 거짓으로 평가하는 특징
if(undefined){ console.log("undefined is true"); } else { console.log("undefined is false"); }let f1 = undefined;
let f2 = null;
let f3 = 0;
let f4 = -0;
let f5 = NaN;
let f6 = "";
let f7 = 0n;
if(123){ console.log("123 is true"); } else { console.log("123 is false"); }7가지 Falsy 한 값들 제외한 나머지 모든 값
function printName(person){ console.log(person.name); } let person; printName(person);person의 값이 undefined일때
Cannot read properties of undefined (reading 'name') 에러가 출력된다.
function printName(person){ if(person === undefined){ console.log("person의 값이 없음"); return; } console.log(person.name); } let person; printName(person);이를 방지하기 위해 undefined 일때 return 하는 조건문을 넣어주지만, 이 코드로는 null 일 때의 에러를 막지 못한다.
조건문을 if(person === undefined || person === null) 로 작성해두어도 좋지만 가독성이 떨어진다.
function printName(person){ if(!person){ console.log("person의 값이 없음"); return; } console.log(person.name); } let person; printName(person);이럴 때에 Falsy 속성을 이용하면 깔끔하게 코드 작성이 가능해진다.