JavaScript үндэс / Үнэн/Худал (Boolean)

Үнэн/Худал (Boolean)

Boolean нь зөвхөн хоёр утгатай өгөгдлийн төрөл: true (үнэн) эсвэл false (худал). Энгийн мэт санагдах ч boolean нь программчлалын хамгийн чухал ухагдахуунуудын нэг — шийдвэр гаргах, нөхцөл шалгах, давталт зогсоох бүгд boolean-д тулгуурладаг.

javascript
let isLoggedIn = true;
let isPaid = false;
let hasCompleted = false;

console.log(isLoggedIn); // true
console.log(isPaid); // false

Харьцуулалтын операторууд

Хоёр утгыг харьцуулахад харьцуулалтын операторуудыг ашиглана. Үр дүн нь үргэлж boolean байна.

javascript
let a = 10;
let b = 20;

console.log(a > b); // false — a нь b-ээс их үү?
console.log(a < b); // true  — a нь b-ээс бага уу?
console.log(a >= 10); // true  — a нь 10-аас их буюу тэнцүү үү?
console.log(a <= 10); // true  — a нь 10-аас бага буюу тэнцүү үү?
console.log(a === 10); // true  — a нь 10-тай тэнцүү үү?
console.log(a !== b); // true  — a нь b-ээс ялгаатай уу?

=== ба == ялгаа

JavaScript-д тэгш байдлыг шалгах хоёр оператор байдаг. Үргэлж === ашигла.

javascript
console.log(5 == "5"); // true  — утга тэнцүү, төрлийг харьцуулдаггүй
console.log(5 === "5"); // false — утга тэнцүү боловч төрөл ялгаатай

console.log(0 == false); // true  — заль мэхтэй
console.log(0 === false); // false — зөв, учир нь 0 нь number, false нь boolean

== нь автоматаар төрөл хөрвүүлдэг бөгөөд энэ нь олон гэнэтийн алдаа гаргадаг. === нь утга болон төрөл хоёуланг нь шалгадаг тул аюулгүй.

Логик операторууд

Хэд хэдэн нөхцөлийг нэгтгэхэд логик операторуудыг ашиглана.

&& — ба (AND): Хоёул үнэн байвал true

javascript
let age = 20;
let hasTicket = true;

console.log(age >= 18 && hasTicket); // true — хоёул биелсэн
console.log(age >= 18 && !hasTicket); // false — нэг нь биелээгүй

|| — эсвэл (OR): Наад зах нь нэг нь үнэн байвал true

javascript
let isStudent = false;
let isTeacher = true;

console.log(isStudent || isTeacher); // true — нэг нь үнэн
console.log(isStudent || false); // false — хоёул худал

! — үгүйсгэх (NOT): Утгыг эсрэгээр нь хөрвүүлнэ

javascript
let isDone = false;

console.log(!isDone); // true
console.log(!true); // false
console.log(!!isDone); // false — давхар үгүйсгэл, boolean болгоход хэрэглэнэ

Truthy ба Falsy утгууд

JavaScript-д boolean биш утгуудыг нөхцөлд ашиглахад автоматаар true эсвэл false болж хөрвөдөг. Энэ ойлголтыг truthy/falsy гэдэг.

Falsy утгууд — нөхцөлд false болж тооцогддог:

javascript
console.log(Boolean(false)); // false
console.log(Boolean(0)); // false
console.log(Boolean("")); // false — хоосон string
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN)); // false

Truthy утгууд — бусад бүх зүйл:

javascript
console.log(Boolean(1)); // true
console.log(Boolean("а")); // true — хоосон бус string
console.log(Boolean([])); // true — хоосон array хүртэл!
console.log(Boolean({})); // true — хоосон object хүртэл!

Практик жишээ:

javascript
const username = "";

if (username) {
  console.log(`Тавтай морил, ${username}!`);
} else {
  console.log("Нэвтрэх шаардлагатай."); // Энэ мөр ажиллана
}

Дараагийн хичээлд:

Нөхцөл шалгах if/else бүтцийг үзнэ — boolean утгуудыг ашиглан программ хэрхэн шийдвэр гаргадгийг судална.