거짓 같은 값(Falsy , Falsy로 쓰이기도 함) 값은 boolean 문맥에서 false로 평가되는 값이다.
false | 키워드 false |
0 | 숫자 zero |
-0 | 음수 zero |
0n | BigInt. 불리언으로 사용될 경우, 숫자와 같은 규칙을 따름. 0n은 거짓 같은 값. |
"" | 빈 string |
null | null - 아무런 값도 없음 |
undefined | undefined - 원시값 |
NaN | NaN - 숫자가 아님 |
falsy 값의 자동 형 반환
즉 불리언 값을 요구하는 부분에 어떤 변수가 들어왔을 때, 그 변수의 값이 0 / NaN / false / null / undefined / ‘’ 만 아니라면 자바스크립트에서는 이를 Truthy로 판단하여 내부적으로 True 불리언 값으로 형 변환 해준다.
truthy 값의 자동 형 변환
let variable;
if(variable === false){
console.log("조건문 맞음");
} else {
console.log("조건문 틀림");
}
자바스크립트는 ‘불리언 값을 요구하는 부분’의 결과 값이 Truthy / Falsy라면 그 결과값을 True / False로 형 변환해 줄 뿐이라는 것을 기억해야 한다.
ㄴ variable의 값은 undefined이고, 이 값은 불리언 값인 false와는 결코 같지 않다.
따라서 조건문의 조건인 ‘variable === false’의 결과가 false가 되어 ‘조건문 틀림’이 출력된 것이다.