Responsive Advertisement

JavaScript์—์„œ Boolean ๊ฐ’ ๋‹ค๋ฃจ๊ธฐ: Booleans ์™„๋ฒฝ ๊ฐ€์ด๋“œ

JavaScript์—์„œ Boolean์€ ๋‹จ ๋‘ ๊ฐ€์ง€ ๊ฐ’, true์™€ false๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒํ˜•์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’๋“ค์€ ๋…ผ๋ฆฌ์ ์ธ ์กฐ๊ฑด์„ ๋‹ค๋ฃจ๊ฑฐ๋‚˜ ์ œ์–ด ํ๋ฆ„์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” JavaScript์—์„œ Booleans๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€, ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์™€ ์œ ์šฉํ•œ ํŒ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

JavaScript์˜ Boolean ๊ฐ’

Boolean ๊ฐ’์€ ๊ธฐ๋ณธ์ ์œผ๋กœ true ๋˜๋Š” false๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ์ด๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๋…ผ๋ฆฌ์  ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’๋“ค์€ ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ, ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Boolean ๊ฐ’์˜ ๊ธฐ๋ณธ ์˜ˆ์‹œ

// Boolean ๊ฐ’
let isTrue = true;
let isFalse = false;

console.log(isTrue);  // true
console.log(isFalse); // false

์œ„ ์˜ˆ์‹œ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ Boolean ๊ฐ’ true์™€ false๋ฅผ ๋ณ€์ˆ˜์— ์ €์žฅํ•œ ํ›„ ์ถœ๋ ฅํ•˜๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

Boolean์œผ๋กœ ํ‰๊ฐ€๋˜๋Š” ๊ฐ’

JavaScript์—์„œ๋Š” **Truthy**์™€ **Falsy**๋ผ๋Š” ๊ฐœ๋…์„ ํ†ตํ•ด ๊ฐ’์ด Boolean์œผ๋กœ ํ‰๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŠน์ • ๊ฐ’๋“ค์ด ๋ช…์‹œ์ ์ธ true ๋˜๋Š” false๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„, ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์—์„œ Boolean์œผ๋กœ ๋ณ€ํ™˜๋˜๋Š” ์ƒํ™ฉ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Truthy ๊ฐ’

๋‹ค์Œ ๊ฐ’๋“ค์€ JavaScript์—์„œ truthy๋กœ ํ‰๊ฐ€๋˜๋ฉฐ, ๋…ผ๋ฆฌ์  ํ‰๊ฐ€์—์„œ true๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค:

  • ์ˆซ์ž(0์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์ˆซ์ž)
  • ๋ฌธ์ž์—ด(๋นˆ ๋ฌธ์ž์—ด ์ œ์™ธ)
  • ๊ฐ์ฒด์™€ ๋ฐฐ์—ด
// Truthy ๊ฐ’ ์˜ˆ์‹œ
console.log(Boolean(1));        // true
console.log(Boolean("hello"));  // true
console.log(Boolean([]));       // true
console.log(Boolean({}));       // true

Falsy ๊ฐ’

๋‹ค์Œ ๊ฐ’๋“ค์€ JavaScript์—์„œ falsy๋กœ ํ‰๊ฐ€๋˜๋ฉฐ, ๋…ผ๋ฆฌ์  ํ‰๊ฐ€์—์„œ false๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค:

  • false
  • 0 (์ˆซ์ž 0)
  • "" (๋นˆ ๋ฌธ์ž์—ด)
  • null
  • undefined
  • NaN (์ˆซ์ž๊ฐ€ ์•„๋‹˜)
// Falsy ๊ฐ’ ์˜ˆ์‹œ
console.log(Boolean(0));        // false
console.log(Boolean(""));       // false
console.log(Boolean(null));     // false
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN));      // false

์œ„์—์„œ ๋ณด๋“ฏ์ด, ์ด๋Ÿฌํ•œ ๊ฐ’๋“ค์€ ๋…ผ๋ฆฌ์  ํ‰๊ฐ€์—์„œ ๋ชจ๋‘ false๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

Boolean ๊ฐ’ ๋ณ€ํ™˜

ํŠน์ • ๊ฐ’์ด ๋…ผ๋ฆฌ์  ํ‰๊ฐ€์—์„œ true ๋˜๋Š” false๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์‰ฝ๊ฒŒ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด, JavaScript๋Š” Boolean() ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๊ฐ’์„ ๋ช…์‹œ์ ์œผ๋กœ Boolean ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ค๋‹ˆ๋‹ค.

// Boolean ๋ณ€ํ™˜
console.log(Boolean(10));       // true
console.log(Boolean("JavaScript"));  // true
console.log(Boolean(0));        // false
console.log(Boolean(null));     // false

์œ„ ์˜ˆ์‹œ์—์„œ๋Š” Boolean() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฐ’๋“ค์ด true ๋˜๋Š” false๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ณผ์ •์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Boolean ๊ฐ’์„ ์‚ฌ์šฉํ•œ ์กฐ๊ฑด๋ฌธ

Boolean ๊ฐ’์€ ์กฐ๊ฑด๋ฌธ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด๋ฌธ์€ ํŠน์ • ์กฐ๊ฑด์ด true์ผ ๋•Œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์ œ์–ดํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

1. if๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ

// if ๋ฌธ ์‚ฌ์šฉ
let isLoggedIn = true;

if (isLoggedIn) {
  console.log("๋กœ๊ทธ์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
} else {
  console.log("๋กœ๊ทธ์ธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.");
}

์œ„ ์˜ˆ์‹œ๋Š” isLoggedIn ๋ณ€์ˆ˜๊ฐ€ true์ผ ๋•Œ์™€ false์ผ ๋•Œ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

2. ์‚ผํ•ญ ์—ฐ์‚ฐ์ž

์‚ผํ•ญ ์—ฐ์‚ฐ์ž(?:)๋Š” ์กฐ๊ฑด์— ๋”ฐ๋ผ ๊ฐ’์„ ์„ ํƒํ•˜๋Š” ๊ฐ„๊ฒฐํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

// ์‚ผํ•ญ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ
let userRole = "admin";
let message = userRole === "admin" ? "๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค." : "์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์ž…๋‹ˆ๋‹ค.";

console.log(message);  // ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค.

์ด ์ฝ”๋“œ๋Š” ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋Š” ๊ฐ„๊ฒฐํ•œ ๋…ผ๋ฆฌ ํ‰๊ฐ€์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

Boolean ์—ฐ์‚ฐ

Boolean ๊ฐ’์„ ๋‹ค๋ฃฐ ๋•Œ, ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JavaScript๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค: AND(&&), OR(||), NOT(!).

1. AND ์—ฐ์‚ฐ์ž &&

AND ์—ฐ์‚ฐ์ž๋Š” ๋‘ ์กฐ๊ฑด์ด ๋ชจ๋‘ true์ผ ๋•Œ๋งŒ true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

// AND ์—ฐ์‚ฐ์ž
let age = 25;
let hasLicense = true;

if (age >= 18 && hasLicense) {
  console.log("์šด์ „ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.");
} else {
  console.log("์šด์ „ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.");
}

์ด ์˜ˆ์‹œ์—์„œ๋Š” ๋‚˜์ด๊ฐ€ 18์„ธ ์ด์ƒ์ด๊ณ , ์šด์ „ ๋ฉดํ—ˆ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์šด์ „์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์กฐ๊ฑด์„ AND ์—ฐ์‚ฐ์ž๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

2. OR ์—ฐ์‚ฐ์ž ||

OR ์—ฐ์‚ฐ์ž๋Š” ๋‘ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ผ๋„ true์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

// OR ์—ฐ์‚ฐ์ž
let hasCar = false;
let hasBike = true;

if (hasCar || hasBike) {
  console.log("์ด๋™ ์ˆ˜๋‹จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.");
} else {
  console.log("์ด๋™ ์ˆ˜๋‹จ์ด ์—†์Šต๋‹ˆ๋‹ค.");
}

์ด ์ฝ”๋“œ๋Š” ์ž์ „๊ฑฐ ๋˜๋Š” ์ž๋™์ฐจ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ '์ด๋™ ์ˆ˜๋‹จ์ด ์žˆ๋‹ค'๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

3. NOT ์—ฐ์‚ฐ์ž !

NOT ์—ฐ์‚ฐ์ž๋Š” ๊ฐ’์˜ ๋…ผ๋ฆฌ ์ƒํƒœ๋ฅผ ๋ฐ˜์ „์‹œํ‚ต๋‹ˆ๋‹ค. ์ฆ‰, true๋Š” false๋กœ, false๋Š” true๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค.

// NOT ์—ฐ์‚ฐ์ž
let isRaining = false;

if (!isRaining) {
  console.log("์šฐ์‚ฐ์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.");
} else {
  console.log("์šฐ์‚ฐ์„ ์ฑ™๊ธฐ์„ธ์š”.");
}

์ด ์˜ˆ์‹œ์—์„œ๋Š” ๋น„๊ฐ€ ์˜ค์ง€ ์•Š์„ ๋•Œ '์šฐ์‚ฐ์ด ํ•„์š” ์—†๋‹ค'๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

JavaScript์—์„œ Boolean ๊ฐ’์€ ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. Truthy์™€ Falsy ๊ฐ’์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ , ์กฐ๊ฑด๋ฌธ ๋ฐ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ Boolean ๊ฐ’์„ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•ด ์ฝ”๋“œ์˜ ๋…ผ๋ฆฌ์  ํ๋ฆ„์„ ์ œ์–ดํ•ด๋ณด์„ธ์š”!

๋Œ“๊ธ€ ์“ฐ๊ธฐ