TypeScript - 布爾值:程序設計中的真與假的入門指南

你好,未來的編程超級巨星!你準備好要進入 TypeScript 中布爾值的迷人世界了嗎?如果你從未寫過一行代碼也不用擔心——我們將從最基礎的知識開始,一起踏上這個旅程。在這個教學的結尾,你將成為一位布爾值大師,能夠像編程巫師一樣運用 true 和 false!

TypeScript - Boolean

什麼是布爾值?

在我們深入細節之前,讓我們先來討論一下布爾值到底是什麼。在編程中,布爾值是一種數據類型,只能有兩個值:true 或 false。這就像開關一樣——它要么是開的,要么是關的,沒有中間狀態。

想像你問你的朋友他們是否想去看電影。他們的答案只能是「是的」(true)或「不是的」(false)。這正是布爾值在編程中的工作方式!

語法:如何在 TypeScript 中寫布爾值

在 TypeScript 中,寫布爾值就像打字 truefalse 一樣簡單。這裡有一個例子:

let isHappy: boolean = true;
let isSad: boolean = false;

在這段代碼中,我們創建了兩個變量:isHappyisSadisHappy 變量被設為 true,而 isSad 則被設為 false

类型注解:告訴 TypeScript 你期待什麼

你可能注意到我們前一個例子中的 : boolean 部分了。這被稱為类型注解。這就像在盒子上貼標籤一樣,告訴別人裡面是什麼。當我們寫 : boolean 時,我們是在告訴 TypeScript,「嘿,這個變量將會是一個布爾值!」

這裡有另一個例子:

let isRaining: boolean;
isRaining = true;
// isRaining = "Yes"; // 這會導致錯誤!

在這個例子中,我們將 isRaining 声明為布爾值,但我們還沒有給它賦值。稍後,我們將 true 賦值給它,這是完全沒問題的。然而,如果我們試圖將字符串 "Yes" 賦值給它,TypeScript 會抛出錯誤,因為 "Yes" 不是一个布爾值。

真(Truthy)和假(Falsy)值:當非布爾值行為像布爾值

現在,我們來看看有趣的部分!在 TypeScript(和 JavaScript)中,有些非布爾值可以被當作布爾值對待。我們稱這些為「真值」和「假值」。

  • 假值包括:false0''(空字符串)、nullundefinedNaN
  • 其他所有的都視為真值。

讓我們看看這是怎麼工作的:

if (1) {
console.log("1 是真值!");
}

if ("") {
console.log("這句不會被打印,因為空字符串是假值。");
}

在這個例子中,第一個 if 語句會執行,因為 1 是真值,但第二個不會,因為空字符串是假值。

將非布爾值轉換為布爾值

有時候,你可能想要將非布爾值轉換為布爾值。有幾種方法可以做到這點:

  1. 使用 Boolean() 函數:
let num = 5;
let boolValue = Boolean(num);
console.log(boolValue); // 輸出:true
  1. 使用雙重否定運算符(!!):
let str = "Hello";
let boolValue = !!str;
console.log(boolValue); // 輸出:true

這兩種方法都會將真值轉換為 true,將假值轉換為 false

布爾運算:組合布爾值

現在我們知道如何創建布爾值了,讓我們來學習如何操作它們。有三種主要的布爾運算:

  1. AND(&&):如果兩個操作數都是 true,則返回 true
  2. OR(||):如果至少有一個操作數是 true,則返回 true
  3. NOT(!):反转布爾值。

讓我們看看這些是如何工作的:

let isAdult = true;
let hasLicense = false;

console.log(isAdult && hasLicense); // false
console.log(isAdult || hasLicense); // true
console.log(!isAdult); // false

在這個例子中,isAdult && hasLicensefalse,因為雖然 isAdulttrue,但 hasLicensefalseisAdult || hasLicensetrue,因為至少有一個(isAdult)是 true!isAdultfalse,因為它是 true 的相反。

使用布爾值的條件表達式

布爾值通常用於條件語句中,在我們的代碼中做出決策。這有一個例子:

let age: number = 20;
let canVote: boolean = age >= 18;

if (canVote) {
console.log("你可以投票!");
} else {
console.log("對不起,你太小了,不能投票。");
}

在這段代碼中,我們正在檢查 age 是否大於或等於 18。如果是,canVote 將為 true,這個人可以投票。如果不是,canVote 將為 false,他們不能投票。

TypeScript 中的 Boolean 和 boolean

你可能偶爾會在 TypeScript 代碼中看到 Boolean(大寫 B)。這指的是 Boolean 對象,它與我們一直在使用的原始 boolean 類型不同。

let primitiveBoolean: boolean = true;
let objectBoolean: Boolean = new Boolean(true);

通常來說,除非你有特殊原因要使用 Boolean 對象,否則建議使用原始的 boolean 類型。

布爾屬性和方法

雖然原始的 boolean 類型沒有任何屬性或方法,但 Boolean 對象則有。這裡有一些:

屬性/方法 描述
Boolean.prototype.toString() 返回 "true" 或 "false"
Boolean.prototype.valueOf() 返回 Boolean 對象的原始值

這是怎麼使用的:

let boolObj = new Boolean(true);
console.log(boolObj.toString()); // 輸出: "true"
console.log(boolObj.valueOf()); // 輸出: true

這就是你剛剛完成的 TypeScript 中布爾值的快速導覽。記住,布爾值可能看起來很簡單,但它們是編程邏輯的基石。每次你使用 if 語句或循環時,你都是在背後使用布爾值。

在你繼續編程旅程的過程中,你會發現布爾值到處都是。它們就像編程世界的秘密間諜——微小、不引人注目,但非常強大。所以下次有人問你「對或錯?」時,你可以微笑,知道你理解了在編程世界中這個問題的深刻存在主義含義。

持續練習,保持好奇心,並記住:在布爾值的世界中,沒有「也許」——只有對或錯。快樂編程!

Credits: Image by storyset