Java Script从入门到精通(第5版)
上QQ阅读APP看书,第一时间看更新

2.2.2 变量

变量是指程序中已经命名的存储单元,主要作用是为数据操作提供存储信息的容器。变量是相对常量而言的。常量是一个不会改变的固定值,而变量的值可能会随着程序的执行而改变。变量有两个基本特征,即变量名和变量值。为了便于理解,可以把变量看作一个贴着标签的盒子,标签上的名字就是这个变量的名字(即变量名),而盒子里面的东西就相当于变量的值。下面介绍变量的命名、变量的声明、变量的赋值以及变量的类型。

1.变量的命名

JavaScript中变量的命名规则如下。

 必须以字母或下画线开头,其他字符可以是数字、字母或下画线。

 变量名不能包含空格或加号、减号等符号。

 变量名是严格区分大小写的。例如,UserName与username代表两个不同的变量。

 不能使用JavaScript中的关键字作为变量名。JavaScript中的关键字如表2.2所示。

表2.2 JavaScript中的关键字

说明

JavaScript关键字是指在JavaScript语言中有特定含义的,并成为JavaScript语法中一部分的那些字。JavaScript关键字是不能作为变量名和函数名使用的,否则会使JavaScript在载入过程中出现语法错误。

虽然JavaScript的变量可以任意命名(前提是遵守命名规则),但是在编程时,最好使用便于记忆且有意义的变量名称,以增加程序的可读性。

2.变量的声明

在JavaScript中,使用变量前需要先声明变量,所有的JavaScript变量都是由关键字var声明的,语法格式如下。

var variablename;

其中variablename是声明的变量名。例如,声明一个变量username,代码如下。

var username;  //声明变量username

另外,还可以使用一个关键字var同时声明多个变量,例如:

var username,sex,age;  //同时声明3个变量,即username、sex和age

3.变量的赋值

在声明变量的同时可以使用等于号(=)对变量进行初始化赋值。例如,声明一个变量lesson并对其进行赋值,值为一个字符串“JavaScript从入门到精通”,代码如下。

var lesson="JavaScript从入门到精通";  //声明变量并对其进行初始化赋值

另外,还可以在声明变量之后对变量进行赋值,例如:

var lesson;                       //声明变量
lesson="JavaScript从入门到精通";  //对变量进行赋值

在JavaScript中,可以不先声明而直接对变量进行赋值。例如,给一个未声明的变量赋值,然后输出这个变量的值,代码如下。

str = "未声明的变量";  //给未声明的变量赋值
document.write(str);   //输出变量的值

运行结果如下。

未声明的变量

在JavaScript中,虽然可以给一个未声明的变量赋值,但是建议在使用变量前对其进行声明,因为声明变量的最大好处就是能及时发现代码中的错误。由于JavaScript是采用动态编译的,因此不易于发现代码中的错误,特别是变量命名方面的错误。

说明

(1)如果只是声明了变量,并未对其赋值,则其值默认为undefined。

(2)可使用var语句重复声明同一个变量,也可在重复声明变量时为该变量赋一个新值。

例如,定义一个未赋值的变量a和一个进行重复声明的变量b,并输出这两个变量的值,代码如下。

var a;                             //声明变量a
var b = "JavaScript网页特效";      //声明变量b并初始化
var b = "JavaScript从入门到精通";  //重复声明变量b
document.write(a);                 //输出变量a的值
document.write("<br>");            //输出换行标记
document.write(b);                 //输出变量b的值

运行结果如下。

undefined
JavaScript从入门到精通

注意

在JavaScript中,必须先定义变量才可使用,不能直接使用未经定义的变量。

4.变量的类型

变量的类型是指变量的值所属的数据类型,可以是数值型、字符串型和布尔型等,因为JavaScript是一种弱类型的程序语言,所以可以把任意类型的数据赋值给变量。

例如,先将一个数值型数据赋值给一个变量,在程序运行过程中,可以将一个字符串型数据赋值给同一个变量,代码如下。

var num=10;           //定义数值型变量
num="这是一个数值" ;  //定义字符串型变量

【例2.4】输出球员信息。(实例位置:资源包\TM\sl\2\04)

迈克尔·乔丹曾是NBA著名的篮球运动员之一。本例将迈克尔·乔丹的别名、身高、总得分、主要奖项以及场上位置分别定义在不同的变量中,并输出这些信息,代码如下。

<h1 style="font-size:24px;"> 迈克尔·乔丹</h1>
<script type="text/javascript">
    var alias = "飞人";                  //定义别名变量
    var height = 198;                    //定义身高变量
    var score = 32292;                   //定义总得分变量
    var achievement = "6次NBA总冠军";    //定义主要奖项变量
    var position = "得分后卫/小前锋";    //定义场上位置变量
    document.write("别名:");            //输出字符串
    document.write(alias);               //输出变量alias的值
    document.write("<br>身高:");        //输出换行标记和字符串
    document.write(height);              //输出变量height的值
    document.write("cm<br>总得分:");    //输出换行标记和字符串
    document.write(score);               //输出变量score的值
    document.write("分<br>主要奖项:");  //输出换行标记和字符串
    document.write(achievement);         //输出变量achievement的值
    document.write("<br>场上位置:");    //输出换行标记和字符串
    document.write(position);            //输出变量position的值
</script>

执行上述代码,结果如图2.6所示。

图2.6 输出球员信息

编程训练(答案位置:资源包\TM\sl\2\编程训练)

【训练3】输出俄罗斯的国土面积 俄罗斯是世界上国土面积最大的国家,其面积约为17 100 000 km2。将该面积定义在变量中,并输出俄罗斯的国土面积。

【训练4】输出人物的个人信息 将郭靖的姓名、性别、年龄、身高和武功这些个人信息定义在变量中,并在页面中输出。实现效果如下。

个人信息
姓名:郭靖
性别:男
年龄:20
身高:1.77m
武功:九阴真经、降龙十八掌