본문 바로가기

프론트엔드/Java Script

JavaScript Sec02_1 Truthy & Falsy

자바스크립트의 조건식에는 boolean 형 값을 넣지 않아도 참이나 거짓으로 인식되는 속성이 있다.

  • Truthy : 자바스크립트가 조건식에서 참으로 평가하는 타입
    • 빈 배열 [ ]
    • 객체 리터럴 { }
    • 숫자형, Infinity (양의 무한대)
    • 문자열
  • Falsy : 자바스크립트가 조건식에서 거짓으로 평가하는 타입
    • null
    • undefined
    • 숫자 0, 숫자가 아님을 의미하는 NaN
    • “” (빈 문자열)

EX)


//객체를 매개변수로 받아서, 받은 객체에서 특정한 프로퍼티를 반환하는 프로그램
const getName = (person) => {
  return person.name;
};
let person; //여기서 person은 undefined type이 된다. 
const name = getName(person);
console.log(name);

person.name 에서, undefined (person)은 객체가 아니므로 프로퍼티가 없다. 따라서 여기서 에러가 발생한다.

const getName = (person) => {
  return person.name;
};
let person = {};
const name = getName(person);
console.log(name);

⇒ 에러가 발생하지 않고 undefined이 출력된다.

const getName = (person) => {
  if (person===undefined || person===null){
    return "객체가 아닙니다";
  }
  return person.name;
};
let person=null;
const name = getName(person);
console.log(name);

⇒ if 문을 이용하여 에러를 처리하기에는 한계가 존재함

const getName = (person) => {
  if (!person){
    // false NOT => True
    return "객체가 아닙니다";
  }
  return person.name;
};
let person=null;
const name = getName(person);
console.log(name);

⇒ null, undefined의 falsy한 속성을 이용해 조건식을 간단하게 줄일 수 있다.