- 动态网页设计与开发:JavaScript + jQuery
- 石毅等
- 1447字
- 2020-08-27 12:09:40
1.5 JavaScript变量
1.5.1 变量的声明
JavaScript是一种弱类型的脚本语言,无论是数字、文本还是其他内容,统一使用关键字var加上变量名称进行声明,其中关键字var来源于英文单词variable(变量)的前三个字母。
可以在声明变量的同时对其指定初始值;也可以先声明变量,再另行赋值。例如:
![](https://epubservercos.yuewen.com/DE91A3/17518673407512906/epubprivate/OEBPS/Images/39132_24_3.jpg?sign=1738880135-cUq0tWJKgdHhZCqGmIaRKN7O4YBeWG7I-0-f42f521484e78f13ac984c19e61aaa51)
常见变量的赋值为数字或文本形式。当变量的赋值内容为文本时,需要使用引号(单引号、双引号均可)括住内容;当把变量赋值为数字的时候,内容不要加引号,否则会被当作字符串处理。
JavaScript也允许使用一个关键字var同时定义多个变量。例如:
![](https://epubservercos.yuewen.com/DE91A3/17518673407512906/epubprivate/OEBPS/Images/39132_24_4.jpg?sign=1738880135-V3XvU6zpByotdN7E4Ny5ijlO3NhiYgap-0-a9ec87e949ffbbbeddc1c80f1b9a7e34)
同时定义的变量类型可以不一样,并且可为其中部分或全部变量进行初始化。例如:
![](https://epubservercos.yuewen.com/DE91A3/17518673407512906/epubprivate/OEBPS/Images/39132_24_5.jpg?sign=1738880135-8flCDExQRqm0ljH5yhZGEiK7wHbazZVY-0-7005204a097355a584b391107a05b5e7)
由于JavaScript变量是弱类型的,因此同一个变量可以用于存放不同类型的值。例如可以声明一个变量初始化时用于存放数值,然后将其更改为存放字符串。代码如下:
![](https://epubservercos.yuewen.com/DE91A3/17518673407512906/epubprivate/OEBPS/Images/39132_24_6.jpg?sign=1738880135-6S9Dzt7iZnvu88V1dIsJ7oTqZnmoCT27-0-5dab3240fd1d7c6b46390252516b8181)
这段代码从语法上来说没有任何问题,但是为了养成良好的编程习惯不建议用此种做法。应该将变量用于保存相同类型的值。变量的声明不是必需的,可以不使用关键字var声明直接使用。例如:
![](https://epubservercos.yuewen.com/DE91A3/17518673407512906/epubprivate/OEBPS/Images/39132_24_7.jpg?sign=1738880135-90zMjRJaWxrz50Pr1M3gTSKcvBynTyAg-0-eb88bfe44ff402e8e8be6e1be3ee6c51)
上述代码中的msg1、msg2和msg均没有使用关键字var事先声明就直接使用了,这种写法也是有效的。当程序遇到未声明过的名称时,会自动使用该名称创建一个变量并继续使用。
【示例4】 JavaScript变量的简单应用
![](https://epubservercos.yuewen.com/DE91A3/17518673407512906/epubprivate/OEBPS/Images/39132_24_8.jpg?sign=1738880135-NbZGYZsuR9xpStp6MsIMmp4nxXZLVDjK-0-a31ed57171487f1bc2a054d273a61a5c)
![](https://epubservercos.yuewen.com/DE91A3/17518673407512906/epubprivate/OEBPS/Images/39132_25_1.jpg?sign=1738880135-GrjFUNZQaBKPXeYHhJKoQMGzc1CjE7fK-0-1694b71ecf1a50be942b77fc27ce8c72)
示例4在浏览器中的运行效果如图1.8所示。
![](https://epubservercos.yuewen.com/DE91A3/17518673407512906/epubprivate/OEBPS/Images/39132_25_2.jpg?sign=1738880135-U332EXYgBrqF5fwWpKgjSyVTdtxmNGNw-0-3b2d54af1e073abbe379b8ec766724a8)
图1.8 示例运行效果图
注意
千万要注意JavaScript是区分大小写的,特别是变量的命名、语句关键字等,这种错误有时很难查找。变量可以不经过声明而直接使用,但这种方法很容易出错,也很难查找排错,因此不推荐使用。在使用变量之前,请先声明后使用,这是良好的编程习惯。
1.5.2 变量的命名规范
一个有效的变量命名需要遵守以下两条规则:
➢ 首位字符必须是字母(A~Z、a~z)、下划线(_)或者美元符号($)。
➢ 其他位置上的字符可以是下划线(_)、美元符号($)、数字(0-9)或字母(A~Z、a~z)。
例如:
![](https://epubservercos.yuewen.com/DE91A3/17518673407512906/epubprivate/OEBPS/Images/39132_25_3.jpg?sign=1738880135-coMeVedbveNiuEGxvFVAcTOLgDu0KpZQ-0-43e044fde4b3ced62c833416a1e32a91)
常用的变量命名方式有Camel标记法、Pascal标记法和匈牙利类型标记法等。
➢ Camel标记法:又称为驼峰标记法,该规则声明的变量首字母为小写,其他单词以大写字母开头。例如var myFirstScript、var myTest等。
➢ Pascal标记法:该规则声明的变量所有单词首字母均大写。例如var MyFirstScript、var MyTest等。
➢ 匈牙利类型标记法:该规则是在Pascal标记法的基础上为变量加一个小写字母的前缀,用于提示该变量的类型,如i表示整数、s表示字符串等。例如var sMyFirstScript、var iMyTest等。
1.5.3 定义常量
常量可以理解为在脚本运行过程中值始终不变的量,它的特点是一旦被定义就不能被修改或重新定义。例如,数学中的圆周率π就是一个常量,其值就是固定且不能被改变的。
而JavaScript中在ES6之前是没有常量的,现ES6中新增了const关键字,用于实现常量的定义,常量的命名遵循标识符的命名规则,习惯上常量名称总是使用大写字母表示的。具体示例如下:
![](https://epubservercos.yuewen.com/DE91A3/17518673407512906/epubprivate/OEBPS/Images/39132_26_1.jpg?sign=1738880135-s0QsSyv2rAKRmDNW5MExoRMSCLHfLujY-0-e8c970b23b93d83bd3db920add6f5cbf)
从上可知,常量在赋值时可以是具体的数据,也可以是表达式的值或变量。需要注意的是,常量一旦被赋值就不能被改变,并且常量在声明时必须为其指定某个值。
1.5.4 JavaScript关键字和保留字
JavaScript遵循ECMA-262标准中规定的一系列关键字规则,这些关键字不能作为变量或者函数名称。
全部关键字共计25个,如表1-2所示。
表1-2 JavaScript关键字一览表
![](https://epubservercos.yuewen.com/DE91A3/17518673407512906/epubprivate/OEBPS/Images/39132_26_2.jpg?sign=1738880135-3QKIQpsewXgsiTbFHgUc4SyaNbL8A1E8-0-8271e5919bf752612965e2844818bafe)
如果使用了上述关键字作为变量或者函数名称会引起错误。
在ECMA-262标准中还规定了一系列保留字,这些字是为将来的关键字而保留的单词,同样也不可以作为变量或者函数的名称。全部保留字约几十个,如表1-3所示。
表1-3 JavaScript保留字一览表
![](https://epubservercos.yuewen.com/DE91A3/17518673407512906/epubprivate/OEBPS/Images/39132_26_3.jpg?sign=1738880135-v3EwgUvRE5sqcelj67NXtmO7kRKiX0Zn-0-04b0feac5108e5aee5103c28ff12ddcd)
如果使用了上述保留字作为变量或者函数名称会被认为使用了关键字,从而一样引起报错。
1.5.5 技能训练
上机练习2 变量命名规范
需求说明
以下哪些变量的声明是不正确的?
(1) var test.
(2) var 123test.
(3) var$test.
(4) var_test.
(5) var double.