If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

将数据存储在变量中

计算机程序指示计算机如何处理数据。
有时数据来自用户,例如当游戏要求您选择难度级别和音乐音量时:
图中显示了一台正在游戏设置界面的笔记本电脑。标签“volume”音量,滑块显示在30%的位置。标签 “difficulty” 显示在三个按钮上方,“easy”、“medium”、“hard”,并选择“easy”按钮。 箭头指向笔记本电脑到有2行的表格。第一行有“volume:3”,第二行有“difficulty:easy”。
其他时候,数据已经存储在程序中,就像同一个游戏以0分和3条命开始一样:
图中是一个有两行内容的表。第一行有“score: 3”,第二行有“lives:3”。箭头从桌子指向带有游戏屏幕的笔记本电脑。屏幕左上角显示0分,右上角显示3个心。
无论哪种方式,程序都可以将这些数据存储在变量中。每个变量都有一个名称,一个值和一个类型。值可能会随着时间的推移而改变,这就是它为什么被叫做“变量”的原因。
游戏使用至少四个变量:
命名类型
volume3number
difficulty"easy"string
score0number
lives3number
许多变量存储数字和字符串,如上所述。变量还可以存储其他类型的数据,如列表、字典和布尔值(true/false)。
我们将首先学习数字和字符串,然后再深入研究高级类型。首先,让我们写一些代码!

赋值变量

以下是我们如何在JavaScript中创建名为score的变量:
var score = 0;
这行代码称为陈述。所有程序都由陈述组成,每个陈述都是计算机上有关我们需要它做的事情的指令。
让我们添加lives变量:
var score = 0;
var lives = 3;
📝 在这里查看相似的代码:App Lab | Snap | Python
现在我们的代码使用两个声明来存储两个具有两个不同值的变量。在幕后,计算机将每个值存储在内存中的不同位置,并且变量指向该内存位置。

显示变量

我们如何确保计算机实际上将这些值存储在内存中? 我们可以要求它显示值。
正如我们之前所知,在可汗学院展示的一种方法是使用println()程序:
📝 在这里查看相似代码: App Lab | Snap | Python
当我们指示计算机println(score)时,计算机必须在其内存中查找该变量的当前值,然后一旦找到它,它就可以在控制台中显示它。
🔍 自己尝试一下:编辑代码,让计算机找到一个它还不知道的变量。会发生什么?

重新赋值变量

在游戏中,玩家的分数和他们的生命数量不会保持不变。分数通常会上升,生命通常会下降。这意味着我们需要能够在以后更改这些变量的值。
我们可以使用类似于初始赋值的代码将变量重新赋值给新值:
score = 5;
现在score变量存储值5而不是初始值0。
请注意,当我们重新赋值JavaScript时,不再将var放在前面。在所有语言中都不是这样,所以你如果正在学习的另一种语言,可能会与现在遇到的略有不同。
这是一个创建两个变的程序,重新赋值其中一个变量,并在此过程中显示值:
📝 在这里查看相似的代码: App Lab | Snap | Python
这个程序很有趣,因为它包含两行看起来完全相同:println(score)。 然而,所有输出线都不同;怎么可能?
那是因为计算机 按顺序 运行每个声明,并且 score 变量的值随时间变化。
让我们逐步完成这个程序,一次一个声明:
步骤声明描述
1var score = 0;初始化变量 score 为 0
2var lives = 3;初始化变量 lives 为 3
3println(score);显示当前 score 的值:0
4println(lives);显示当前 lives 的值:3
5score = 5;重新赋值变量 score 值为 5
6println(score);显示当前 score的值:5
当我们第一次开发程序时,我们经常显示变量的值来仔细检查程序的状态。 变量是存储我们认为存储的内容,还是我们的代码在此过程中做了一些意想不到的事情?
🔍 亲自尝试:编辑上面的代码,看看输出如何变化。

伪代码表示变量

此伪码代表指定变量:
a ← expression
每当你看到伪代码时,就意味着变量a(或其所谓的)被赋予了expression的值。
例如,您可能会看到如下伪代码:
age ← 21
这意味着变量age被赋值为21
让我们看几个文本语言中的等效代码:
语言代码
JavaScriptvar age = 21;
Pythonage = 21
变量赋值也是基于块的语言的概念:
语言
Snap!
来自Snap的变量块屏幕截图,显示“将年龄设置为21”
AppInventor
来自AppInventor的变量块的屏幕截图,显示“将全球年龄初始化为22”
如你所见,赋值变量的代码在不同语言中非常相似。虽然存在一些差异,这就是我们使用伪代码的原因:传达概念而不用担心确切的语法。
测验你的理解
什么是和这段JavaScript程序对应的伪代码?
var x = 200;
选出正确答案:


🙋🏽🙋🏻‍♀️🙋🏿‍♂️你对这个章节还有问题吗? 我们会尽力回答— 请在下面提问框里留言!

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.