
1.8 JavaScript的变量
微课

JavaScript的变量
1.变量的概念与命名
变量是内存中存取数据的容器。
例如:

在JavaScript中,这些字母被称为变量。
JavaScript变量可用于存放常量数值(如x=2)和表达式的值(如z=x+y)。
变量可以使用短名称(如x和y),也可以使用描述性更好的名称(如name、age、sum、total、volume)。
变量名必须以字母开头,中间可以出现字母、数字、下画线(_),变量名不能有空格、+、-等字符,JavaScript的关键字不能作变量名。JavaScript变量的名称也允许以$和_符号开头,不过不推荐这么做。
变量名称对大小写敏感(如y和Y是不同的变量),JavaScript语句和JavaScript变量都对大小写敏感。
变量的基本类型有4种:字符串变量、整型变量、实型变量和布尔型变量。
2.JavaScript变量的声明
(1)单个变量的声明与赋值
在JavaScript中创建变量通常称为“声明”变量。
使用var关键字来声明变量。
例如:

变量声明之后,该变量是空的(它没有值)。
使用赋值号(=)向变量赋值。
例如:

也可以在声明变量时对其赋值。
例如:

提示
一个好的编程习惯是,在代码开始处,统一对需要的变量进行声明。
(2)多个变量的声明与赋值
可以在一条语句中声明多个变量。该语句以var开头,并使用逗号分隔变量即可。
例如:

多个变量的声明也可横跨多行。
例如:

(3)声明无值的变量
声明变量时可以只用var标识符声明无值的变量。未赋值的变量,其值实际上是undefined。
在执行过以下语句后,变量name的值将是undefined。
例如:

(4)重复声明JavaScript变量
如果重复声明JavaScript变量,该变量的值不会丢失。在以下两条语句执行后,变量name的值依然是"李明"。
例如:

由于JavaScript的变量是弱类型的,可以将变量初始化为任意值,因此,可以随时改变变量所存数据的类型,但尽量避免这样做。
3.JavaScript变量类型的声明
声明新变量时,可以使用关键字new来声明其类型。
例如:

JavaScript变量均为对象,当声明一个变量时,就创建了一个新的对象。
4.局部JavaScript变量
在JavaScript函数内部使用var声明的变量是局部变量,该变量的作用域是局部的,即只能在函数内部访问它。
可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。该函数运行完毕,局部变量就会被删除。
5.全局JavaScript变量
在函数外声明的变量是全局变量,网页中的所有脚本和函数都能访问它。JavaScript变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除,而全局变量会在页面关闭后被删除。
如果直接将值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
例如:

该语句将声明一个全局变量name,即使它在函数内执行。
注意
局部变量使用var这一关键字来声明,声明全局变量则不需要使用var关键字。
使用了var关键字的变量被看成是局部的,因为只能在声明它的地方所处的范围内访问,不能在其他任何地方访问。
例如,如果在一个函数内部声明了一个局部变量,该变量就不能在该函数之外访问,这就使得它是这一函数局部的。如果没有使用var关键字声明同一变量,它在整个脚本中就都是可被访问到的,而不仅限定于只能在那个函数中被访问。