본문 바로가기
javaScript

자바스크립트의 Truthy와 Falsy

by mooyou 2025. 1. 11.
728x90
300x250
SMALL

 

1. Truthy와 Falsy란 무엇인가?

JavaScript에서는 값이 Boolean값(true 또는 false)이 아닌 경우에도 조건문 등에서 참(true)이나 거짓(false)으로 평가될 수 있다.

이러한 평가 방식에서 참으로 간주되는 값을 Truthy, 거짓으로 간주되는 값을 Falsy라고 부른다.

 


 

2. Truthy와 Falsy의 예

Falsy값

다음 값들은 JavaScript에서 항상 false로 평가된다.

  • false
  • 0(숫자0)
  • 0(음수 0)
  • ""(빈 문자열)
  • null
  • undefined
  • NaN(숫자가 아님)

 

예제

if (false) { console.log("Falsy"); }   // 조건문 실행 안됨
if (0) { console.log("Falsy"); }      // 조건문 실행 안됨
if ("") { console.log("Falsy"); }     // 조건문 실행 안됨

 

Truthy 값

Falsy에 속하지 않는 나머지 모든 값은 true로 평가된다.

  • true
  • 숫자(0 이외의 값, 음수 포함)
  • "text"(빈 문자열이 아닌 문자열)
  • 객체나 배열(심지어 비어 있어도)
  • Infinity
if (true) { console.log("Truthy"); }         // "Truthy"
if (42) { console.log("Truthy"); }          // "Truthy"
if ("Hello") { console.log("Truthy"); }     // "Truthy"
if ([]) { console.log("Truthy"); }          // "Truthy"
if ({}) { console.log("Truthy"); }          // "Truthy"

 

 


 

3. Truthy와 Falsy의 용어 사용 이유

Boolean과의 차이

  • true와 false는 Boolean값 자체를 의미한다.
  • 반면 Truthy와 Falsy는 다른 값들이 Boolean으로 평가되는 방식을 설명하는 개념이다.

예시

console.log(Boolean("Hello")); // true
console.log(Boolean(""));      // false

 

여기서 Hello는 Truthy이고, ""는 Falsy이다. 이 값들은 Boolean으로 변환되었을 때 각각 true와 false로 평가된다.

 


4. Truthy와 Falsy가 중요한 이유

조건문에서의 활용

조건문(if, while 등)은 내부적으로 값을 Boolean으로 변환하여 평가한다.

const value = 0;

if (value) {
  console.log("Value is Truthy");
} else {
  console.log("Value is Falsy");
}
// 출력: Value is Falsy

 

 

논리 연산자의 동작

Truthy와 Falsy는 논리 연산자에서 특히 유용하다.

1. || (OR연산자) : 첫 번째 Truthy 값을 반환

2. &&(AND 연산자) : 첫 번째 Falsy 값을 반환

console.log("" || "default");      // "default" (Falsy 값 이후 첫 Truthy 반환)
console.log("Hello" && 0);         // 0 (Truthy 값 이후 첫 Falsy 반환)
console.log("Hello" && "World");   // "World" (모두 Truthy, 마지막 값 반환)

 

 

기본값 설정

Falsy 값을 이용해 기본값을 설정할 때도 자주 사용된다.

let userInput = ""; // 사용자가 입력하지 않은 값
let defaultValue = userInput || "Default Value";

console.log(defaultValue); // "Default Value"

 

 


 

5. Truthy와 Falsy 값의 주의점

1. 0과 ""의 혼동

숫자 0은 Falsy, "0"(문자열)은 Truthy

if (0) { console.log("Falsy"); }       // Falsy
if ("0") { console.log("Truthy"); }   // Truthy

 

2. 빈 객체와 배열

비어 있는 객체 {}나 배열 []은 Truthy이다.

if ({}) { console.log("Truthy"); }  // Truthy
if ([]) { console.log("Truthy"); }  // Truthy

 

3. null과 undefined

둘 다 Falsy 이지만 서로 다르다.

console.log(null == undefined); // true
console.log(null === undefined); // false
728x90
반응형
LIST

댓글