Truthy and Falsy
자바스크립트에서 Truthy와 Falsy는 '참 같은 값'과 '거짓 같은 값'을 뜻합니다.
이 값들은 자바스크립트에서 조건문과 반복문 등
boolean값이 필요한 곳에서 각각 true와 false로 평가됩니다.
다음 8가지 값은 falsy이다.
false | false |
0 | 숫자 0 |
-0 | 음수 0 |
0n | BigInt (boolean으로 사용될 경우 숫자와 같은 규칙을 따름) |
"" | 빈 string |
null | null |
undefined | undefined |
NaN | NaN |
이 외 모든 값은 truthy로 볼 수 있습니다.
따라서 truthy와 falsy는 아래와 같이 조건문 등에서 직접적인 비교를 할 필요가 없으며
// example 1
if (x == undefined || x == null || x == "" || x == 0) {
// runs if x is falsy
};
// example 2
x = x == undefined || x == null || x == "" ? 'Y' : 'N';
alert(x); // 'Y'
아래의 예시처럼 간결하게 코드를 작성할 수 있습니다.
// example 1
if (!x) {
// runs if x is falsy
};
// example 2
x = !x ? 'Y' : 'N';
alert(x); // 'Y'
truthy와 falsy가 true, false로 평가되는 성질 때문에
falsy 간의 비교 시 동등 연산자(==)로 비교가 가능할 것이라 생각할 수 있지만
다음 예시처럼 falsy 간의 비교는 예외상황이 발생할 수 있습니다.
// true
'' == 0;
false == 0;
null == undefined;
// false
0 == undefined;
'' == null;
NaN == NaN;
이때는 각 유형이 일치해야 하기 때문에
일치 연산자(===)를 사용해서 비교를 권장합니다.
// all false
'' === 0;
false === 0;
null === undefined;
함께 보면 좋은 글
'JavaScript' 카테고리의 다른 글
[JavaScript] 키코드 정리 (JavaScript keyCode) (0) | 2021.07.17 |
---|---|
[JavaScript] Date 객체 사용 시 주의해야 할 점 (크로스 브라우징 이슈) (1) | 2021.07.06 |
[JavaScript] 논리 연산자(&&, ||)를 활용한 간결하고 효율적인 스크립트 작성 TIP (0) | 2021.07.02 |
[Javascript] 객체 property 종류 및 속성 (0) | 2021.07.02 |
[JavaScript] String을 Number 타입으로 형변환 (자동, 명시적) (3) | 2021.07.01 |