TypeScript - 布尔类型:编程中的真与假的入门指南

你好,未来的编程巨星!你准备好进入TypeScript中布尔值的迷人世界了吗?如果你之前从未编写过一行代码,也不用担心——我们将从最基础的内容开始,一起踏上这段旅程。在本教程结束时,你将成为布尔值的大师,能够像编程巫师一样熟练地使用true和false!

TypeScript - Boolean

布尔值是什么?

在我们深入细节之前,让我们先来了解一下布尔值究竟是什么。在编程中,布尔值是一种只能有两个值的数据类型:true或false。这就像一个开关——它要么是开(on),要么是关(off),没有中间状态。

想象一下你在问你的朋友他们是否想去电影院。他们的答案只能是“是”(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"不是一个布尔值。

真值和假值:当非布尔值表现得像布尔值

现在,事情变得有趣了!在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中的布尔值 vs 布尔对象

你可能会在TypeScript代码中偶尔看到Boolean(首字母大写)的用法。这指的是布尔对象,它与我们所使用的原始boolean类型不同。

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

一般来说,除非你有特定的理由使用布尔对象,否则推荐使用原始的boolean类型。

布尔属性和方法

虽然原始的boolean类型没有属性或方法,但布尔对象有。以下是一些例子:

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

以下是如何使用它们:

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

就是这样!你刚刚完成了TypeScript中布尔值的快速入门。记住,布尔值可能看起来很简单,但它们是编程中逻辑的构建块。每次你使用if语句或循环时,背后都在使用布尔值。

在你继续编程之旅时,你会发现布尔值无处不在。它们就像编程世界中的秘密特工——微小、不显眼,但极其强大。所以下次有人问你“是或不是?”时,你可以微笑,知道你在编程世界中理解了这个问题的深刻存在主义含义。

继续练习,保持好奇心,并记住:在布尔值的世界里,没有“可能”——只有“是”或“否”。快乐编程!

Credits: Image by storyset