็„ก์ œ

Truthy and Falsy (์ฐธ ๊ฐ™์€ ๊ฐ’ & ๊ฑฐ์ง“ ๊ฐ™์€ ๊ฐ’) ๋ณธ๋ฌธ

<script>

Truthy and Falsy (์ฐธ ๊ฐ™์€ ๊ฐ’ & ๊ฑฐ์ง“ ๊ฐ™์€ ๊ฐ’)

yo-u-loo 2026. 5. 28. 14:28


๐ŸŸจ Truthy & Falsy

JavaScript์—์„œ๋Š” true / false๊ฐ€ ์•„๋‹Œ ๊ฐ’๋„ ์กฐ๊ฑด๋ฌธ ์•ˆ์—์„œ ์ž๋™์œผ๋กœ true ๋˜๋Š” false๋กœ ๋ณ€ํ™˜๋˜๋Š”๋ฐ, ์ด๊ฑธ Truthy / Falsy๋ผ๊ณ  ํ•œ๋‹ค.

 

๐ŸŸฃ Falsy (๊ฑฐ์ง“์œผ๋กœ ํ‰๊ฐ€๋˜๋Š” ๊ฐ’)

์กฐ๊ฑด๋ฌธ์—์„œ false๋กœ ์ทจ๊ธ‰๋˜๋Š” ๊ฐ’๋“ค๋กœ, JavaScript์—์„œ๋Š” Boolean์œผ๋กœ ํ˜•๋ณ€ํ™˜ํ–ˆ์„ ๋•Œ false๊ฐ€ ๋˜๋Š” ๊ฐ’๋“ค์„ ์˜๋ฏธํ•œ๋‹ค.

if (๊ฐ’) {
    console.log("truthy");
} else {
    console.log("falsy");
}
  • false: ์ด๋ฏธ boolean ํƒ€์ž…์ด๋ฉฐ ๊ฑฐ์ง“์„ ์˜๋ฏธ.
  • 0 (์ˆซ์ž 0):  ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ทจ๊ธ‰๋จ.
  • -0 (์Œ์ˆ˜ 0): 0๊ณผ ์™„์ „ํžˆ ๋™์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋ฉฐ ์กฐ๊ฑด ๊ฒฐ๊ณผ๋„ ๊ฐ™๋‹ค. (๋‚ด๋ถ€ ํ‘œํ˜„๋งŒ ๋‹ค๋ฆ„)
  • 0n (BigInt 0): BigInt ํƒ€์ž…์—์„œ๋„ 0์€ falsy.
  • "" (๋นˆ ๋ฌธ์ž์—ด): ๋ฌธ์ž์—ด์— ์•„๋ฌด ๊ฐ’๋„ ์—†์„ ๋•Œ์˜ ์ƒํƒœ .
  • null: ์˜๋„์ ์œผ๋กœ ๊ฐ’์ด ์—†์Œ์„ ์˜๋ฏธ.
  • undefined: ๊ฐ’์ด ์•„์ง ํ• ๋‹น๋˜์ง€ ์•Š์•˜์Œ์„ ์˜๋ฏธ.
  • NaN: ์ˆซ์ž๊ฐ€ ์•„๋‹˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์ด์ง€๋งŒ, ํƒ€์ž…์€ number๋กœ ์ทจ๊ธ‰. (Not a Number)
 
 
 

๐ŸŸฃ Truthy (์ฐธ์œผ๋กœ ํ‰๊ฐ€๋˜๋Š” ๊ฐ’)

Falsy 8๊ฐœ์˜ ๊ฐ’์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ชจ๋“  ๊ฐ’์€ Truthy๋กœ ์ทจ๊ธ‰๋œ๋‹ค.

if ("hello") {
    console.log("์‹คํ–‰๋จ"); // Truthy
}

if (123) {
    console.log("์‹คํ–‰๋จ"); // Truthy
}

if ([]) {
    console.log("๋นˆ ๋ฐฐ์—ด๋„ Truthy");
}

if ({}) {
    console.log("๋นˆ ๊ฐ์ฒด๋„ Truthy");
}
  • "0": ๋ฌธ์ž์—ด "0"์€ ๋น„์–ด์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ Truthy.
  • "false": ๋ฌธ์ž์—ด "false"๋„ ๋‚ด์šฉ์ด ์žˆ์œผ๋ฏ€๋กœ Truthy.
  • []: ๋นˆ ๋ฐฐ์—ด์€ ๊ฐ์ฒด ํƒ€์ž…์ด๋ฏ€๋กœ Truthy.
  • {}: ๋นˆ ๊ฐ์ฒด ์—ญ์‹œ ๊ฐ์ฒด ํƒ€์ž…์ด๋ฏ€๋กœ Truthy.
  • 1-100: 0์ด ์•„๋‹Œ ๋ชจ๋“  ์ˆซ์ž๋Š” Truthy.

๐Ÿ‘‰ ๊ฐ’์ด ์กด์žฌํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„ Truthy๋กœ ํ‰๊ฐ€๋œ๋‹ค.

 

โš ๏ธ ์ฃผ์˜ํ•ด์•ผ ํ•  ์  โš ๏ธ

Falsy ๊ฐ’์„ ์ •ํ™•ํžˆ ๋ชจ๋ฅด๋ฉด ์˜๋„์น˜ ์•Š์€ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

let score = 0;

// ์‚ฌ์šฉ์ž๊ฐ€ 0์ ์„ ๋งž์•˜๋Š”๋ฐ "์ ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ์ถœ๋ ฅ๋˜๋Š” ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ
if (!score) {
    console.log("์ ์ˆ˜๊ฐ€ ๊ธฐ๋ก๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค."); 
}
 

๐Ÿ‘‰ ๋”ฐ๋ผ์„œ ์ˆซ์ž 0์ฒ˜๋Ÿผ ๋น„์–ด์žˆ๋Š” ์ƒํƒœ๊ฐ€ ์•„๋‹Œ '์œ ํšจํ•œ ๊ฐ’'์„ ๋‹ค๋ฃฐ ๋•Œ๋Š” if (score === 0)๊ณผ ๊ฐ™์ด ์—„๊ฒฉํ•˜๊ฒŒ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•˜๋‹ค.

 

๐Ÿ“โ€Š POINT ๐Ÿ“โ€Š

โœ”๏ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ’์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ฐธ/๊ฑฐ์ง“์„ ํŒ๋‹จํ•˜๋Š” ์œ ์—ฐํ•œ ์–ธ์–ด์ด๋‹ค. โœ”๏ธ

โœ”๏ธ0, "", null, undefined๋Š” ๋Œ€ํ‘œ์ ์ธ Falsy ๊ฐ’์ด๋‹ค. โœ”๏ธ

โœ”๏ธ ๋นˆ ๋ฐฐ์—ด []์ด๋‚˜ ๊ฐ์ฒด {}๋Š” ์˜์™ธ๋กœ Truthy๋ผ๋Š” ์ ์„ ๊ผญ ๊ธฐ์–ตํ•˜์ž. โœ”๏ธ

 


 

โš™๏ธ ์‹ค์ „ ์˜ˆ์ œ ์ฝ”๋“œ โš™๏ธ

// 1. ๋ฌธ์ž์—ด์ด ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธ
let userName = ""; // ๋นˆ ๋ฌธ์ž์—ด (Falsy)

if (userName) {
    console.log("์ด๋ฆ„์ด ์ž…๋ ฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
} else {
    console.log("์ด๋ฆ„์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”."); // ์‹คํ–‰๋จ
}

// 2. ์ˆซ์ž๊ฐ€ 0์ธ์ง€ ํ™•์ธ
let cartCount = 0;

if (!cartCount) { // 0์€ Falsy์ด๋ฏ€๋กœ !0์€ true๊ฐ€ ๋จ
    console.log("์žฅ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค."); // ์‹คํ–‰๋จ
}

// 3. ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์™”๋Š”์ง€ ํ™•์ธ (null, undefined ์ฒดํฌ)
let data = null;

if (data) {
    console.log("๋ฐ์ดํ„ฐ ์ˆ˜์‹  ์„ฑ๊ณต");
} else {
    console.log("๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค."); // ์‹คํ–‰๋จ
}

 

 

'<script>' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Array Iteration (๋ฐฐ์—ด ๋ฐ˜๋ณต)  (0) 2026.05.28
Loop statement (๋ฐ˜๋ณต๋ฌธ)  (0) 2026.05.28
Conditional statement (์กฐ๊ฑด๋ฌธ)  (0) 2026.05.28
Operator (์—ฐ์‚ฐ์ž)  (0) 2026.05.28
Data Types (๋ฐ์ดํ„ฐ ํƒ€์ž…)  (0) 2026.05.28