← 编程学习中心
📖

Preparation

8 个课程
1
如何学习编程
2
计算机基础
3
键盘初识与基准键位
4
字母与数字基础
5
Shift键魔法
6
编程符号专精
7
功能键与修饰键
8
键盘学习总结与进阶
📚

Basics

22 个课程
1
什么是编程?
2
Hello World - 你的第一个程序
3
变量基础概念 - 给信息贴标签
4
变量赋值和操作 - 变量的高级用法
5
数据类型基础 - 数字和字符串
6
基础运算符 - 数字运算王国
7
布尔类型与比较运算符 - 程序的判断基础
8
条件判断基础 - 让程序学会做决定
9
变量作用域 - 变量的生存范围
10
条件语句进阶 - 复杂判断与嵌套结构
11
逻辑运算符 - 简化复杂条件判断
12
循环语句 - 程序的重复机器
13
循环进阶 - break、continue与循环控制
14
嵌套循环与作用域
15
循环调试实战技巧
16
循环不变量 - 理解循环的数学规律
17
数组基础 - 数据的收纳盒
18
数组操作方法 - 添加、删除和管理
19
数组高级 - 探索数组的强大功能
20
引用概念 - 变量的不同行为
21
函数基础 - 解决重复代码的秘密武器
22
函数实践与应用 - 巩固基础,实战应用
🚀

Intermediate

11 个课程
1
从控制台到画布 - p5.js初体验
2
图形绘制工具箱 - 基础图形函数
3
让世界多彩 - 颜色系统详解
4
文字的艺术 - 文本绘制与样式
5
球体动起来 - 动画基础入门
6
球体的交互魔法 - 鼠标与条件判断
7
面向对象编程 - Class类与实例
8
球的家族 - 循环与数组应用
9
球的个性 - 函数封装与参数化
10
球的变身 - 形状模式与高级绘制
11
球的世界 - 综合创作项目
🎯

Advanced

6 个课程
1
对象类型
2
对象类型应用
3
自定义类型
4
函数进阶 - 箭头函数与高级编程技巧
5
内置方法 - 字符串与数组的魔法工具
6
Switch语句与字符串模板 - 更优雅的代码表达
← 编程学习中心
📖

Preparation

8 个课程
1
如何学习编程
2
计算机基础
3
键盘初识与基准键位
4
字母与数字基础
5
Shift键魔法
6
编程符号专精
7
功能键与修饰键
8
键盘学习总结与进阶
📚

Basics

22 个课程
1
什么是编程?
2
Hello World - 你的第一个程序
3
变量基础概念 - 给信息贴标签
4
变量赋值和操作 - 变量的高级用法
5
数据类型基础 - 数字和字符串
6
基础运算符 - 数字运算王国
7
布尔类型与比较运算符 - 程序的判断基础
8
条件判断基础 - 让程序学会做决定
9
变量作用域 - 变量的生存范围
10
条件语句进阶 - 复杂判断与嵌套结构
11
逻辑运算符 - 简化复杂条件判断
12
循环语句 - 程序的重复机器
13
循环进阶 - break、continue与循环控制
14
嵌套循环与作用域
15
循环调试实战技巧
16
循环不变量 - 理解循环的数学规律
17
数组基础 - 数据的收纳盒
18
数组操作方法 - 添加、删除和管理
19
数组高级 - 探索数组的强大功能
20
引用概念 - 变量的不同行为
21
函数基础 - 解决重复代码的秘密武器
22
函数实践与应用 - 巩固基础,实战应用
🚀

Intermediate

11 个课程
1
从控制台到画布 - p5.js初体验
2
图形绘制工具箱 - 基础图形函数
3
让世界多彩 - 颜色系统详解
4
文字的艺术 - 文本绘制与样式
5
球体动起来 - 动画基础入门
6
球体的交互魔法 - 鼠标与条件判断
7
面向对象编程 - Class类与实例
8
球的家族 - 循环与数组应用
9
球的个性 - 函数封装与参数化
10
球的变身 - 形状模式与高级绘制
11
球的世界 - 综合创作项目
🎯

Advanced

6 个课程
1
对象类型
2
对象类型应用
3
自定义类型
4
函数进阶 - 箭头函数与高级编程技巧
5
内置方法 - 字符串与数组的魔法工具
6
Switch语句与字符串模板 - 更优雅的代码表达

布尔类型与比较运算符 - 程序的判断基础

在前面的课程中,我们已经学习了数字和字符串类型。现在让我们学习编程中非常重要的布尔值类型,它是程序进行判断和决策的基础。

布尔类型 (boolean) - 程序的判断基础

在编程中,我们经常需要做出判断:某个条件是真的还是假的?

生活中的"二选一"情况

生活中很多情况只有两种可能:

  • 💡 灯是开的还是关的?
  • 🎮 游戏是否胜利?
  • 🔑 门是锁着的还是没锁的?
  • 👤 用户是在线的还是离线的?

这些情况都有共同特点:只有两种状态,没有中间状态。

如果用数字或字符串表示真假

你可能会想:我们可以用数字或字符串来表示真假啊:

方案1:用数字类型(number)表示

加载代码编辑器...

方案2:用字符串类型(string)表示

加载代码编辑器...

方案的问题

  • 含义不明确:数字和字符串可以有很多值,真假的标准模糊
  • 容易出错:很容易写错拼写或大小写

编程语言的解决方案:布尔类型 (boolean)

基于以上问题,编程语言都提供了专门的布尔类型(boolean)来表示真假:

布尔类型的特点:

  • 只有两个值:true(真)和 false(假)
  • 含义明确:不会有第三种可能,不会有歧义
加载代码编辑器...

重要理解:true 和 false 是编程中的特殊关键字

就像编程中有不同类型的基本值一样:

加载代码编辑器...

关键点:

  • true 和 false 不需要用引号包围
  • 如果写成 "true" 或 "false",那就变成字符串了,不是布尔值
  • 计算机会直接识别:
    • true = 真(正确、是、存在、满足条件)
    • false = 假(错误、否、不存在、不满足条件)

为什么布尔类型很重要?

布尔类型是编程中条件判断的基础:

加载代码编辑器...

布尔类型的用途:

  • 状态表示:游戏胜利状态、设备开关状态
  • 条件判断:根据条件的真假执行不同的代码

布尔类型有专门的操作符:

  • 布尔类型不能使用 +、-、*、/ 等算术运算符
  • 后面我们会介绍专门用于布尔类型的运算符

记住:布尔类型是编程中表示真假的专门类型,只有 true 和 false 两个值,是我们学习条件判断的基础!

TypeScript 中的布尔类型声明

还记得我们在数据类型课程中学习的类型声明吗?同样适用于布尔类型。

自动类型推断(推荐)

当我们创建布尔类型变量并赋值时,TypeScript 会自动确定变量的类型:

加载代码编辑器...

TypeScript 的智能类型推断:

  • 当你创建变量并赋值 true 或 false 时,TypeScript 会自动推断出这是布尔类型
  • 就像计算机在说:"我看到你给这个变量赋了一个布尔值,所以它应该是布尔类型"
  • 一旦类型确定,就不能将其他类型的数据赋值给这个变量

显式类型声明

除了让 TypeScript 自动推断类型,我们还可以明确地告诉计算机变量的类型。

TypeScript 的布尔类型名称

在TypeScript中,布尔类型的名称是 boolean(注意全部小写)。

就像我们在数据类型课程中学到的:

  • 数字类型:number(小写)
  • 字符串类型:string(小写)
  • 布尔类型:boolean(小写)

明确声明布尔类型变量

加载代码编辑器...

重要说明:

  • 这种写法和数据类型课程中学的手动指定类型完全一致,只是类型名不同而已
  • boolean 必须全部小写,不能写成 Boolean 或 BOOLEAN
  • 一旦指定为 boolean 类型,这个变量就只能存储 true 或 false

两种方案如何选择?

对于布尔类型变量,我们有两种方式来声明:

方案1:让 TypeScript 自动推断类型(推荐)

加载代码编辑器...

方案2:显式声明类型

加载代码编辑器...

如何选择:能自动推断的都推荐使用自动推断

练习:修正布尔类型错误

加载代码编辑器...

提示: 布尔类型的值 true 和 false 不需要用引号包围

比较运算符 - 比较数字和判断相等

比较运算符用来比较两个值的大小或是否相等,结果总是布尔值(boolean)true(真)或 false(假)。

记住:任何比较运算的结果都是布尔值!

八种基本比较运算符

编程中有八种基本的比较运算符,可以分为两类:

大小比较运算符(数学概念,比较熟悉)

  • > - 大于:左边的值大于右边的值
  • < - 小于:左边的值小于右边的值
  • >= - 大于等于:左边的值大于或等于右边的值
  • <= - 小于等于:左边的值小于或等于右边的值

相等比较运算符(编程特有,需要重点学习)

  • === - 严格相等:两个值完全相同(值和类型都相同)
  • !== - 严格不相等:两个值不完全相同(值或类型不同)
  • == - 宽松相等:比较两个值是否相等(会进行类型转换)
  • != - 宽松不相等:比较两个值是否不相等(会进行类型转换)

重要说明:

  • 大小比较运算符一般在数字之间使用
  • 相等比较运算符可以比较任何类型(数字、字符串、布尔值等)
  • 学习重点:在后续学习中,我们主要使用严格比较(=== 和 !==),因为宽松比较容易产生意外结果

让我们用简单的例子来学习这八种运算符:

加载代码编辑器...

为什么推荐使用严格比较?

从上面的代码示例中,你可以看到宽松比较(==、!=)会产生一些意外的结果:

宽松比较的问题

加载代码编辑器...

学习建议:

  • 主要使用:=== 和 !==(严格比较)
  • 不使用:== 和 !=(宽松比较),在后续学习中我们不会使用它们
  • 了解即可:知道宽松比较存在,这样当你在其他代码中看到它们时不会困惑

比较运算符的左右两边

计算机执行比较时,只需要两个步骤:

  1. 先算出左右两边的最终值
  2. 然后用计算出来的最终值进行比较

以 a > b 为例,a 和 b 可以是很多不同的形式! 下面这些例子是为了让你看看 a 和 b 都可以是什么:

例子1:a和b都是直接数字

加载代码编辑器...

例子2:a和b都是变量

加载代码编辑器...

例子3:数学运算

加载代码编辑器...

核心理解:

  • 比较运算符很灵活,a和b可以有很多种形式
  • 从简单到复杂:直接写数字 → 用变量 → 简单计算
  • 大小比较(>、<):主要用来比较数字
  • 相等比较(===、!==):可以比较数字、字符串、布尔值等各种东西
  • 记住这个简单的原则:先算出左右两边结果,再进行最终比较!这个结果是一个布尔值(true 或 false)

比较运算符产生布尔值

核心概念:比较运算符总是产生布尔值(true 或 false),所以任何需要布尔值的地方都可以使用比较运算符!

几种常见的布尔值使用场景

1. 直接显示布尔值

加载代码编辑器...

2. 赋值给布尔变量

加载代码编辑器...

3. 用于条件判断(后续会学到)

加载代码编辑器...

总结

今天我们系统学习了布尔类型和比较运算符的完整知识体系:

布尔类型基础

  • 布尔值特点:只有 true 和 false 两个值,不需要引号包围
  • 类型名称:boolean(全部小写),与 number、string 保持一致
  • 用途:表示二元状态、条件判断、开关等真假情况
  • 类型安全:TypeScript 确保布尔变量只能存储 true 或 false

类型声明方式

  1. 自动类型推断(推荐):let isVictory = true - 简洁明了
  2. 显式类型声明:let isVictory: boolean = true - 手动指定类型
  3. 语法一致性:手动指定布尔类型的语法结构与数据类型课程完全一致

比较运算符统一概念

所有比较运算符都遵循统一原则:

  • 八种基本运算符:
    • 大小比较:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)
    • 相等比较:===(严格相等)、!==(严格不相等)、==(宽松相等,了解即可)、!=(宽松不相等,了解即可)
  • 核心原理:所有比较运算符总是产生布尔值(true 或 false)
  • 使用原则:我们主要使用严格比较(===、!==),不使用宽松比较(==、!=)

运算符分类:

  • 大小比较运算符:一般用来比较数字的大小
  • 相等比较运算符:可以比较各种类型的值是否相等
  • 工作原理:先算出左右两边结果,再进行最终比较 - 左边和右边可以是任何能算出值的形式

布尔值的使用场景

  1. 直接显示:用 console.log 直接显示比较运算符的结果
  2. 变量赋值:布尔变量可以存储比较运算符产生的结果
  3. 条件判断:条件语句可以使用比较运算符来控制程序流程(后续学习)

布尔类型和比较运算符是程序控制流的基础。掌握了比较运算符如何产生布尔值,以及布尔值如何在程序中流动使用,你就为学习条件语句、布尔非运算符等更复杂的程序结构打下了坚实的基础!

Previous lesson
Previous
基础运算符 - 数字运算王国
Next
条件判断基础 - 让程序学会做决定
Next lesson