티스토리 뷰

헉!!/javascript

[Javascript] Truthy & Falsy

권태성 2024. 7. 20. 23:58
Playwright를 사용하기 위해 짧게나마 notion에 정리내용을 블로그에 옮김

 

  • Truthy : 참 같은 값
  • Falsy : 거짓 같은 값
//조건 식에 빈 문자열 a를 넣으니 false로 인식해서 FALSE가 출력됨
let a = "";

if (a) {
  console.log("TRUE");
} else {
  console.log("FALSE");
}
//조건 식에 비어있지 않은 문자열 a를 넣으니 true로 인식해서 TRUE가 출력됨
let a = "string";

if (a) {
  console.log("TRUE");
} else {
  console.log("FALSE");
}

이 처럼 Javascript에서는 조건문에 boolean 형식이 아닌 변수를 넣어도 참이나 거짓으로 인식되는 속성이 있음.

실제로 boolean이 아니라도 참으로 인식하는 형태

  • 객체 리터럴
  • 숫자형
  • 문자열

등 초기화 된 값을 넣으면 참으로 인식함 이를 Truthy라고 함.

반대로 null, undefined, -0, NaN, 공백 값에는 거짓으로 인식하고 이를 Falsy라고 함.

//일반적인 객체를 인자로 받아 return 하는 함수 활용
const getName = (person) => {
  return person.name;
};

let person = { name: "김테스트" };
const name = getName(person);

console.log(name);

/*
	인자로 받은 객체가 undefined 일 때 예외처리
	이 방식은 undefined에 대해서만 예외 처리가 되어있으므로
	null 등에 대해서는 오류가 발생함
*/
const getName = (person) => {
  if (person === undefined) {
    return "객체가 아닙니다";
  }
  return person.name;
};

let person;
const name = getName(person);

console.log(name);

/*
	위 예외 처리를 Falthy 속성을 이용해서 한 번에 해결하는 방법으로
	객체에 ! not 연산자를 붙여서 객체임을 확인
*/
const getName = (person) => {
  if (!person) {
    return "객체가 아닙니다";
  }
  return person.name;
};

let person;
const name = getName(person);

console.log(name);

 

 

 

 

 

 

 

 

728x90