변수나 상수의 값이 없거나 비어보이지만 실제로는 값으로 인정되는 경우를 말한다.
[], {}, Infinity, String 등
let a = [];
if (a) {
console.log("Truthy")
}
else {
console.log("Falthy")
}
//Thruthy
[]처럼 비어있는 배열이어도 값으로 인정된다.
값이 있어보임에도 실제로는 값으로 인정되지 않는다.
null, undefind, "", 0 등
let a = null;
if (a) {
console.log("Truthy")
}
else {
console.log("Falthy")
}
//Falthy
""는 한글자도 입력되지 않으면 값으로 인정되지 않으므로 주의해야한다
여러 Falthy를 한번에 판별하는 방법이 있다.
let a = 0;
if (!a) {
console.log("Falthy")
}
!을 붙이면 if의 조건문이 true가 된다.
왜 이렇게 되는 것일까?
- a = false이다.
- !는 not을 의미하므로 not false가 된다.
- 그러므로 not false는 true가 된다.