TypeScript - 布爾值:程序設計中的真與假的入門指南
你好,未來的編程超級巨星!你準備好要進入 TypeScript 中布爾值的迷人世界了嗎?如果你從未寫過一行代碼也不用擔心——我們將從最基礎的知識開始,一起踏上這個旅程。在這個教學的結尾,你將成為一位布爾值大師,能夠像編程巫師一樣運用 true 和 false!
什麼是布爾值?
在我們深入細節之前,讓我們先來討論一下布爾值到底是什麼。在編程中,布爾值是一種數據類型,只能有兩個值:true 或 false。這就像開關一樣——它要么是開的,要么是關的,沒有中間狀態。
想像你問你的朋友他們是否想去看電影。他們的答案只能是「是的」(true)或「不是的」(false)。這正是布爾值在編程中的工作方式!
語法:如何在 TypeScript 中寫布爾值
在 TypeScript 中,寫布爾值就像打字 true
或 false
一樣簡單。這裡有一個例子:
let isHappy: boolean = true;
let isSad: boolean = false;
在這段代碼中,我們創建了兩個變量:isHappy
和 isSad
。isHappy
變量被設為 true
,而 isSad
則被設為 false
。
类型注解:告訴 TypeScript 你期待什麼
你可能注意到我們前一個例子中的 : boolean
部分了。這被稱為类型注解。這就像在盒子上貼標籤一樣,告訴別人裡面是什麼。當我們寫 : boolean
時,我們是在告訴 TypeScript,「嘿,這個變量將會是一個布爾值!」
這裡有另一個例子:
let isRaining: boolean;
isRaining = true;
// isRaining = "Yes"; // 這會導致錯誤!
在這個例子中,我們將 isRaining
声明為布爾值,但我們還沒有給它賦值。稍後,我們將 true
賦值給它,這是完全沒問題的。然而,如果我們試圖將字符串 "Yes" 賦值給它,TypeScript 會抛出錯誤,因為 "Yes" 不是一个布爾值。
真(Truthy)和假(Falsy)值:當非布爾值行為像布爾值
現在,我們來看看有趣的部分!在 TypeScript(和 JavaScript)中,有些非布爾值可以被當作布爾值對待。我們稱這些為「真值」和「假值」。
- 假值包括:
false
、0
、''
(空字符串)、null
、undefined
和NaN
。 - 其他所有的都視為真值。
讓我們看看這是怎麼工作的:
if (1) {
console.log("1 是真值!");
}
if ("") {
console.log("這句不會被打印,因為空字符串是假值。");
}
在這個例子中,第一個 if
語句會執行,因為 1
是真值,但第二個不會,因為空字符串是假值。
將非布爾值轉換為布爾值
有時候,你可能想要將非布爾值轉換為布爾值。有幾種方法可以做到這點:
- 使用
Boolean()
函數:
let num = 5;
let boolValue = Boolean(num);
console.log(boolValue); // 輸出:true
- 使用雙重否定運算符(
!!
):
let str = "Hello";
let boolValue = !!str;
console.log(boolValue); // 輸出:true
這兩種方法都會將真值轉換為 true
,將假值轉換為 false
。
布爾運算:組合布爾值
現在我們知道如何創建布爾值了,讓我們來學習如何操作它們。有三種主要的布爾運算:
- AND(
&&
):如果兩個操作數都是true
,則返回true
。 - OR(
||
):如果至少有一個操作數是true
,則返回true
。 - NOT(
!
):反转布爾值。
讓我們看看這些是如何工作的:
let isAdult = true;
let hasLicense = false;
console.log(isAdult && hasLicense); // false
console.log(isAdult || hasLicense); // true
console.log(!isAdult); // false
在這個例子中,isAdult && hasLicense
是 false
,因為雖然 isAdult
是 true
,但 hasLicense
是 false
。isAdult || hasLicense
是 true
,因為至少有一個(isAdult
)是 true
。!isAdult
是 false
,因為它是 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