← 编程学习中心
📖

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语句与字符串模板 - 更优雅的代码表达

变量赋值和操作

在上一节课中,我们学习了变量的基础概念和声明方法。现在让我们深入学习变量的赋值操作和读取操作。

什么是赋值?

在编程中,赋值(Assignment)是一个核心概念,表示"把值放入变量中"的过程。

赋值符号和操作

赋值符号:= (等号)

重要说明:

  • 编程中的 = 不是数学中的"等于",而是"赋值"的意思
  • 赋值(assignment) 就是把一个值放到变量里的过程

赋值操作详解

情况1:声明并赋值(首次赋值)

让我们通过 let score = 100 这个例子来理解赋值:

let score = 100;

这行代码一步完成两个操作:

  1. 声明变量:创建一个叫 score 的变量(准备一个储物盒)
  2. 赋值:把数字 100 放到这个变量里(把东西放进储物盒)

赋值符号各部分解释:

  • let - 关键字,用于声明变量
  • score - 变量名,变量的标识符
  • = - 赋值符号,表示把右边的值赋给左边的变量
  • 100 - 值,要存储的数据

情况2:给已存在的变量赋值(重新赋值)

我们也可以给已经存在的变量重新赋值:

score = 150;

这行代码只完成一个操作:

  1. 赋值:把数字 150 放到已经存在的 score 变量里(替换旧值)

注意:这里不需要 let,因为变量 score 已经存在了。let 只在第一次声明变量时使用。

赋值的核心特点

  1. 方向性:赋值总是从右到左

    • 右边:值
    • 左边:变量
    • 例如:变量 = 值
  2. 替换性:新值会替换旧值

    • 如果变量中已有值,赋值会用新值覆盖旧值
  3. 类型匹配

    • 数字类型变量只能接受数字值
    • 字符串类型变量只能接受字符串值

    重要概念:如果是作为变量声明的初始化值,这个值的类型决定了变量的类型

    • let score = 100; → 因为100是数字,所以score是数字类型
    • let name = "小明"; → 因为"小明"是字符串,所以name是字符串类型

现在我们理解了赋值的基本概念,接下来学习如何读取变量的值。

读取变量的值

读取变量:从变量中获取存储的值来使用。

核心原则:看到一个变量,只有两种可能 - 赋值或读取。

  1. 赋值:如果变量在赋值符号(=)的左边,那就是向变量写入数据,把右边的值放入这个变量的容器中
  2. 读取:否则就是在读取变量,从变量的容器中取出存储的值来使用

判断方法:

  • 在 = 左边 → 赋值(写入数据)
  • 不在 = 左边 → 读取(取出数据)

举个例子:

加载代码编辑器...

读取的情况有很多,我们后面随时会见到,这里列举几个例子加深你们的理解:

例子1:通过 console.log 显示变量值

这是最常见的读取方式,用于查看变量的内容:

加载代码编辑器...

例子2:将一个变量的值赋给另一个变量

读取一个变量的值,然后赋值给另一个变量:

加载代码编辑器...

分析这个过程:

  1. 读取 level 的值:从 level 变量中获取数字 5
  2. 计算并赋值给 score:将 5 * 20 = 100 赋值给 score 变量

例子3:参与运算

变量的值可以被读取出来参与各种数学运算:

加载代码编辑器...

赋值与读取的关系

现在我们理解了读取的各种情况,让我们总结赋值与读取的关系:

基本区别

  • 赋值:向变量写入数据(写入操作),发生在 = 的左边
  • 读取:从变量获取数据(读取操作),发生在其他任何地方

变量的生命周期

变量的使用遵循完整的循环:

  1. 声明:创建变量(let score;)
  2. 赋值:写入数据(score = 100;)
  3. 读取:使用数据(console.log(score);)

赋值与读取的配合

在实际编程中,赋值和读取经常配合使用。最经典的例子就是读取→计算→赋值的复合操作:

加载代码编辑器...

理解复合操作:

像 score = score - 20 这样的代码,实际包含三个步骤:

  1. 读取:先读取 score 的当前值(100)
  2. 计算:进行减法运算 100 - 20 = 80
  3. 赋值:将计算结果80赋值给 score

重要原则:等号右边先执行(读取和计算),等号左边后执行(赋值)。

其他类似操作:

加载代码编辑器...

理解赋值和读取的关系是掌握变量使用的关键,它们构成了变量操作的完整循环。

给变量重新赋值:变量独立性

在理解了赋值的基本概念后,让我们重点理解变量的独立性这个重要概念。

加载代码编辑器...

重要观察:

  • 复制后,两个变量都有相同的值(80)
  • 当我们改变 score1 的值时,score2 保持不变
  • 这证明了两个变量是完全独立的

理解变量独立性:

  • 变量就像是独立的储物盒
  • 赋值是把一个盒子里的东西复制一份放到另一个盒子里
  • 改变一个盒子的内容不会影响另一个盒子
  • 这是编程中非常重要的概念!

重要限制

1. 变量必须先声明后使用

在编程中,最基础的规则是变量必须先声明,然后才能使用。

加载代码编辑器...

错误信息解释:

  • variable 'name' used before its declaration 意思是"变量 'name' 在声明之前就被使用了"
    • declaration 的意思是声明,在编程中指的是创建变量的过程
    • 例如:let name = "小明" 中的 let name 就是在声明一个叫 name 的变量

为什么这个规则很重要? 从变量生命周期可以看到,必须遵循顺序:声明 → 赋值 → 读取。如果先使用后声明,程序就试图从未创建的变量中读取数据,就像试图从一个不存在的盒子里取东西。

2. 不能重复声明同名变量

加载代码编辑器...

错误信息解释:

  • Cannot redeclare block-scoped variable 'score' 意思是"不能重新声明块级作用域的变量 'score'"
    • redeclare 的意思是重新声明(re表示"再次",declare表示"声明")
    • 简单理解:变量 score 已经存在,不能再声明一次

重新赋值 vs 重新声明:

  • ✅ 重新赋值:score = 200; (改变变量的值)
  • ❌ 重新声明:let score = 200; (重复创建同名变量)

3. 不能修改变量类型

一旦变量的类型由初始化值确定后,就不能再改变:

加载代码编辑器...

类型错误:Type 'string' is not assignable to type 'number'

  • 意思:字符串类型不能赋值给数字类型
  • TypeScript 提供类型安全,阻止这种类型错误

总结

通过这节课的学习,我们掌握了变量赋值和操作的核心知识:

🎯 核心概念

  1. 赋值基础:= 符号表示赋值,从右到左执行,包含声明并赋值和重新赋值两种情况
  2. 读取操作:从变量中获取值,只要不在 = 左边就是读取操作
  3. 类型匹配:值的类型必须与变量类型兼容,变量类型由初始化值决定

🛠️ 实用技能

  1. 变量独立性:变量之间赋值后各自独立,修改一个不影响另一个
  2. 复合操作:理解 a = a + 1 等读取→计算→赋值的执行流程
  3. 类型安全:TypeScript确保变量类型正确,防止类型错误

💡 重要限制

  1. 先声明后使用:变量必须先创建才能使用,这是编程的基本原则
  2. 不重复声明:同一作用域内不能重复声明同名变量
  3. 遵循规则:掌握变量的生命周期和正确使用方法

变量是编程的基础,就像建筑用的砖头。掌握变量的声明、赋值、读取这三个核心操作,理解变量独立性和重要限制,你就具备了学习更复杂编程概念的坚实基础!

Previous lesson
Previous
变量基础概念 - 给信息贴标签
Next
数据类型基础 - 数字和字符串
Next lesson