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
'javaScript' 카테고리의 다른 글
객체와 배열을 쉽게 다루는 법! 디스트럭처링 핵심 정리 (0) | 2025.01.25 |
---|---|
전개 연산자 (...) 하나로 객체/배열 조작 끝내기! (0) | 2025.01.24 |
바인딩이란? bind() (0) | 2024.12.18 |
Pure함수 Impure함수 개념이해 (0) | 2024.11.04 |
콘솔창에서 자바스크립트 사용하기 (1) | 2024.06.04 |
댓글