变量是什么

一个变量,就是一个用于存放数值的容器。这个数值可能是一个用于累加计算的数字,或者是一个句子中的字符串。变量的独特之处在于它存放的数值是可以改变的。

变量的另一个特性就是它们能够存储任何的东西 – 不只是字符串和数字。变量可以存储更复杂的数据,甚至是函数。

声明变量

要想使用变量,你需要做的第一步就是创建它 – 更准确的说,是声明一个变量。声明一个变量的语法是在 varlet 关键字之后加上这个变量的名字:

1
2
let myName;
let myAge;

在这里我们声明了两个变量 myNamemyAge.

初始化变量

一旦你定义了一个变量,你就能够初始化它. 方法如下,在变量名之后跟上一个“=”,然后是数值:

1
2
myName = 'Chris';
myAge = 37;

你可以像这样在声明变量的时候给变量初始化:

1
let myName = 'Chris';

var 与 let 的区别

最初创建 JavaScript 时,是只有 var 的。 在大多数情况下,这种方法可以接受, 但有时在工作方式上会有一些问题——它的设计会令人困惑或令人讨厌 。 因此,let 是在现代版本中的 JavaScript 创建的一个新的关键字,用于创建与 var 工作方式有些不同的变量,解决了过程中的问题。

下面解释几个简单的差异。

首先,如果你编写一个声明并初始化变量的多行 JavaScript 程序,你可以在初始化一个变量之后用 var 声明它,它仍然可以工作。

这是由于变量的提升。但提升操作不再适用于 let 。如果将上面例子中的 var 替换成 let 将不起作用并引起一个错误。 这是一件好事——因为初始化后再声明一个变量会使代码变得混乱和难以理解。

其次,当你使用 var 时,可以根据需要多次声明相同名称的变量,但是 let 不能。比如:

1
2
ar myName = 'Chris';
var myName = 'Bob';

但是以下内容会在第二行引发错误:

1
2
let myName = 'Chris';
let myName = 'Bob';

更新变量

一旦变量赋值,您可以通过简单地给它一个不同的值来更新它。

关于变量命名的规则

你可以给你的变量赋任何你喜欢的名字,但有一些限制。 一般你应当坚持使用拉丁字符(0-9,a-z,A-Z)和下划线字符。

  • 你不应当使用规则之外的其他字符,因为它们可能引发错误,或对国际用户来说难以理解。
  • 变量名不要以下划线开头—— 以下划线开头的被某些JavaScript设计为特殊的含义,因此可能让人迷惑。
  • 变量名不要以数字开头。这种行为是不被允许的,并且将引发一个错误。
  • 一个可靠的命名约定叫做 **”小写驼峰命名法”**,用来将多个单词组在一起,小写整个命名的第一个字母然后大写剩下单词的首字符。我们已经在文章中使用了这种命名方法。
  • 让变量名直观,它们描述了所包含的数据。不要只使用单一的字母/数字,或者长句。
  • 变量名大小写敏感——因此myagemyAge是2个不同的变量。
  • 最后也是最重要的一点—— 你应当避免使用JavaScript的保留字给变量命名。保留字,即是组成JavaScript的实际语法的单词!因此诸如 var, function, let和 for等,都不能被作为变量名使用。浏览器将把它们识别为不同的代码项,因此你将得到错误。

变量类型

Number

你可以在变量中存储数字,不论这些数字是像30(也叫整数)这样,或者像2.456这样的小数(也叫做浮点数)。与其他编程语言不同,在 JavaScript 中你不需要声明一个变量的类型。当你给一个变量数字赋值时,不需要用引号括起来。

1
let myAge = 17;

String

字符串是文本的一部分。当你给一个变量赋值为字符串时,你需要用单引号或者双引号把值给包起来,否则JavaScript将会把这个字符串值理解成别的变量名。

1
let dolphinGoodbye = 'So long and thanks for all the fish';

Boolean

Boolean 的值有2种:true或false。它们通常被用于在适当的代码之后,测试条件是否成立。举个例子,一个简单的示例如下:

1
let iAmAlive = true;

然而实际上通常是以下用法:

1
let test = 6 < 3;

这是使用“小于”操作符(<)来测试6小于3。正如你所料的,将会返回false,因为6并不小于3!在这个课程中,以后你将会学到许多有关操作符的知识。

Array

数组是一个单个对象,其中包含很多值,方括号括起来,并用逗号分隔。尝试在您的控制台输入以下行:

1
2
let myNameArray = ['Chris', 'Bob', 'Jim'];
let myNumberArray = [10,15,40];

当数组被定义后,您可以使用如下所示的语法来访问各自的值,例如下行:

1
2
myNameArray[0]; // should return 'Chris'
myNumberArray[2]; // should return 40

此处的方括号包含一个索引值,该值指定要返回的值的位置。 您可能已经注意到,计算机从0开始计数,而不是像我们人类那样的1。

在以后的文章,你将更多地了解数组。

Object

在编程中,对象是现实生活中的模型的一种代码结构。您可以有一个简单的对象,代表一个停车场,并包含有关其宽度和长度的信息,或者您可以有一个代表一个人的对象,并包含有关他们的名字,身高,体重,他们说什么语言,如何说 你好,他们,等等。

尝试在您的控制台输入以下行:

1
let dog = { name : 'Spot', breed : 'Dalmatian' };

要检索存储在对象中的信息,可以使用以下语法:

1
dog.name

我们现在不会看对象了 - 您可以在将来的模块中了解更多关于这些对象的信息.

动态类型

JavaScript是一种“动态类型语言”,这意味着不同于其他一些语言(译者注:如C、JAVA),您不需要指定变量将包含什么数据类型(例如number或string)

例如,如果你声明一个变量并给它一个带引号的值,浏览器就会知道它是一个字符串:

1
let myString = 'Hello';

即使它包含数字,但它仍然是一个字符串,所以要小心:

1
2
3
4
let myNumber = '500'; // oops, this is still a string
typeof myNumber;
myNumber = 500; // much better — now this is a number
typeof myNumber

第一次返回 String;第二次返回 Number。