카테고리 없음

[JS] 코딩테스트 006 - Boolean ... false와 true

Irene1988 2025. 2. 15. 23:56
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