Sky Archive

JavaScript

[JavaScript] 참 같은 값과 거짓 같은 값? truthy와 falsy

Zero Line 2021. 7. 1. 21:21

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로 볼 수 있습니다.

따라서 truthyfalsy는 아래와 같이 조건문 등에서 직접적인 비교를 할 필요가 없으며

// 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] 논리 연산자(&&, ||)를 활용한 간결하고 효율적인 스크립트 작성 TIP

이 글은 falsy와 truthy시의 개념을 이해하고 읽는 것이 좋다. [JavaScript] 참 같은 값과 거짓 같은 값? truthy와 falsy Truthy and Falsy 자바스크립트에서 Truthy와 Falsy는 '참 같은 값'과 '거짓 같은 값'을..

string.tistory.com