728x90
# 문제6 : False
다음은 자바스크립트 문법 중에서 False로 취급하는 것들 입니다.
앗, False로 취급하지 않는 것이 하나 있네요! **True를 찾아주세요.**
1) NaN
2) 1
3) ""
4) 0
5) undefined
// True로 출력되는것은 2)번
console.log(Boolean(NaN));
console.log(Boolean(1));
console.log(Boolean(""));
console.log(Boolean(0));
console.log(Boolean(undefined));
또는
console.log(!NaN); // true
console.log(!1); // false
console.log(!""); // true
console.log(!0); // true
console.log(!undefined); // true
자바스크립트에서 Truthy(참 같은 값)와 Falsy(거짓 같은 값) 개념은 조건문에서 값이 어떻게 평가되는지를 이해하는 데 매우 중요해요.
🔹 1. Truthy & Falsy란?
- Truthy 값: true로 평가되는 값
- Falsy 값: false로 평가되는 값
자바스크립트에서는 조건문(if, while 등) 에서 직접 true나 false를 비교하지 않아도, 값 자체가 Truthy 또는 Falsy로 변환됩니다.
🔹 2. Falsy 값 (false로 평가되는 값)
자바스크립트에서 아래 7가지는 항상 false로 평가됩니다.
값 | 설명 |
false | 불리언 false 값 |
0 | 숫자 0 (음수 -0 포함) |
"", '', `` (빈 문자열) | 길이가 0인 빈 문자열 |
null | 존재하지 않는 값 |
undefined | 정의되지 않은 값 |
NaN | 숫자가 아님 (예: 0 / 0) |
document.all | 오래된 브라우저에서 사용 (거의 볼 일 없음) |
✅ Falsy 값 예제
if (!false) console.log("Falsy!"); // 실행됨
if (!0) console.log("Falsy!"); // 실행됨
if (!"") console.log("Falsy!"); // 실행됨
if (!null) console.log("Falsy!"); // 실행됨
if (!undefined) console.log("Falsy!"); // 실행됨
if (!NaN) console.log("Falsy!"); // 실행됨
✔️ 위 값들은 모두 false로 평가되므로 !값 하면 true가 되어 console.log()가 실행돼요.
🔹 3. Truthy 값 (true로 평가되는 값)
Falsy가 아닌 모든 값이 Truthy입니다.
✔️ 즉, 빈 문자열("")이나 0이 아닌 모든 값이 true로 평가돼요!
✅ 대표적인 Truthy 값
값 | 설명 |
true | 불리언 true 값 |
1, -1, 100 등 | 0이 아닌 모든 숫자 |
"hello", ' ' | 빈 문자열이 아닌 모든 문자열 |
{}, [] | 빈 객체 {} 및 빈 배열 [] |
function() {} | 함수 |
new Date() | 날짜 객체 |
✅ Truthy 값 예제
if ("hello") console.log("Truthy!"); // 실행됨
if (42) console.log("Truthy!"); // 실행됨
if (-10) console.log("Truthy!"); // 실행됨
if ([]) console.log("Truthy!"); // 실행됨
if ({}) console.log("Truthy!"); // 실행됨
if (function(){}) console.log("Truthy!"); // 실행됨
✔️ 위 값들은 모두 true로 평가되므로 console.log()가 실행돼요.
🔹 4. Falsy & Truthy 활용법
✅ 1️⃣ if 문에서 활용
let name = "";
if (!name) {
console.log("이름이 없습니다.");
}
✔️ name = "" (빈 문자열)은 Falsy이므로 !name이 true가 되어 실행됨.
✅ 2️⃣ || (OR 연산자) → 기본값 설정
Falsy 값을 만나면 다음 Truthy 값을 반환합니다.
let userName = "";
let displayName = userName || "Guest"; // Falsy 값이면 "Guest"로 대체
console.log(displayName); // "Guest"
✔️ userName이 ""(Falsy) → Guest로 대체됨.
✅ 3️⃣ && (AND 연산자) → 값이 있을 때만 실행
Truthy 값이면 다음 값을 반환합니다.
let loggedIn = true;
loggedIn && console.log("사용자가 로그인되었습니다."); // 실행됨
✔️ loggedIn이 true(Truthy) → console.log() 실행됨.
✅ 4️⃣ ?? (Nullish Coalescing) → null과 undefined만 체크
let age = 0;
let userAge = age ?? 18; // age가 null 또는 undefined이면 18
console.log(userAge); // 0 (Falsy지만 null, undefined가 아니므로 유지)
✔️ age = 0은 Falsy지만 null 또는 undefined가 아니므로 0 유지됨.
🚀 정리
개념 | 설명 | 예제(Falsy) | 예제(Truthy) |
Falsy 값 | false로 평가됨 | false, 0, "", null, undefined, NaN | - |
Truthy 값 | true로 평가됨 | - | "hello", 1, -1, {}, [], function() {} |
` | ` (OR) | Falsy 값을 건너뛰고 Truthy 값 선택 | |
&& (AND) | 첫 번째 Falsy 값에서 중단 | false && "실행 X" | true && "실행됨" |
?? (Nullish) | null, undefined만 대체 | null ?? "대체값" → "대체값" | 0 ?? 18 → 0 |
*위 내용은 챗GPT 답변 내용을 정리했습니다.
728x90