JavaScript에는 truthy(참 같은 값)와 falsy(거짓 같은 값)이 있다. 이들은 불리언(boolean)을 기대하는 문맥에서 각각 true와 false로 평가된다.
falsy로 정의된 것이 아니면 truthy이므로 falsy를 먼저 살펴보겠다.
falsy는 불리언(boolean)을 기대하는 문맥에서 false로 평가된다.
값 | 설명 |
---|---|
false | 키워드 false |
null | null - 아무런 값도 없음 |
undefined | undefined - 원시값 |
NaN | NaN - 숫자가 아님 |
"" | 빈 string |
0 | 숫자 zero |
-0 | 음수 zero |
0n | BigInt. 불리언으로 사용될 경우, 숫자와 같은 규칙을 따름. 0n은 거짓 같은 값. |
falsy한 값이 조건이므로 아래의 if문은 모두 실행되지 않는다.
if (false)
if (null)
if (undefined)
if (NaN)
if ("")
if (0)
if (-0)
if (0n)
첫 번째 객체가 falsy라면, 해당 객체를 반환한다.
false && "dog"
// ↪ false
0 && "dog"
// ↪ 0
truthy는 불리언(boolean)을 기대하는 문맥에서 true로 평가된다.
falsy로 정의된 값이 아니라면 모두 truthy이다.
truthy한 값이 조건이므로 아래의 if문은 모두 실행된다.
if (true)
if ({})
if ([])
if (42)
if ("0")
if ("false")
if (new Date())
if (-42)
if (12n)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)