
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.1.2 命名和环境
程序设计语言中有一个至关重要的方面,就是需要提供通过名字引用计算对象的方法。第一种方法是声明常量。我们说某个名字标识一个常量,就是说它的值就是那个对象。
在JavaScript里,我们用常量声明来命名常量:

这就导致解释器把值2关联于名字size[4]。一旦名字size关联于值2,我们就可以通过这个名字去引用值2了:

下面是另外几个使用const的例子:

常量声明是在JavaScript语言里做抽象的最简单的方法,它使我们可以用简单的名字引用组合运算的结果,例如上面计算出的circumference。一般而言,计算对象可以有非常复杂的结构,如果每次需要用它们时都必须记住并重复写出它们的细节,那是非常不方便的。实际上,构造一个复杂的程序,也就是为了设法一步一步地创建出越来越复杂的计算对象。解释器使这种一步一步进行的程序构造过程变得非常方便,因为我们可以通过一系列交互操作,逐步建立所需的名字-对象关联。这种特征鼓励人们采用递增的方式开发和调试程序。而且导致了另一个事实:JavaScript程序通常总是由一批相对简单的函数组成的。
应该看到,我们可以把值关联于名字,而后又能重新取出它们,这意味着解释器必须有某种记忆能力,保持有关的名字-值对偶的轨迹。这种记忆称为环境(更精确地说,是程序环境,因为我们以后会看到,在一个计算中可能涉及若干不同的环境)[5]。