Javascript에는 Truthy
와 Falsy
라고 하는 값이 있다.
if문
과 같이 boolean값으로 판단되는 상황에서 실제 값은 true/false가 아니더라도 true/false로 사용되는 값들을 Truthy
, Falsy
라고 한다.
false, 0, -0, 0n, "", null, undefined, NaN
위의 값들이 Falsy값들이고 다른 모든 값은 true로 처리된다.
true, {}, [], 42, "0", "false", new Date(),
-42, 12n, 3.14, -3.14, Infinity, -Infinity
MDN 문서에서 보면 위의 값들 모두 boolean문맥에서 true를 반환하는 값이라고 되어있다.
NaN
의 경우는 조금 특이한데, NaN
은 어떤 값과도 동일하지 않고 자기 자신과도 동일하지 않다고 한다.
NaN == null // false
NaN == undefined // false
NaN == NaN // false