购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 变量

JavaScript用变量保存在程序执行过程中可能发生变化的数据。为了便于区分每个变量,开发者可以给每个变量起一个简洁明了、容易记住的名字,也就是“变量名”。变量名指向计算机内存中的某个地址,真正的数据存储在内存中。这和日常生活中取快递的过程存在相似之处。

在日常生活中,当快递被送到快递超市后,快递超市会给顾客发送一个“提货码”,之后顾客可以通过出示“提货码”给快递超市的服务人员,从而拿到自己的快递。在这个过程中,“快递超市”相当于“内存”,顾客在网上购买的物品相当于存在“内存”中的“变量”,“提货码”相当于“变量名”,顾客不需要知道自己的“物品”存在快递超市的哪个角落,只要通过“提货码”就可以找到自己的“物品”。

2.1.1 声明变量

JavaScript声明变量的语法有以下几种方式。

(1)使用关键字var可以一次声明一个或多个变量,不同变量间使用逗号隔开。示例如下:

var age;// 一次声明一个变量
var age,userName,gender;// 一次声明多个变量

var是JavaScript关键字,用来声明变量。使用该关键字声明变量后,计算机会自动为变量分配内存空间。age、userName、gender代表变量名,开发者可以通过变量名来访问变量在内存中分配的空间。

(2)声明变量时可以不初始化,此时其值默认为undefined,也可以在声明变量的同时初始化变量。示例如下:

var age = 20;// 声明的同时初始化变量
var age = 20,userName,gender = '男';// 声明的同时初始化部分变量
var age = 20,userName = '冰墩墩',gender = '男'; //声明的同时初始化全部变量

运算符“=”把右边的值赋给左边的变量存储空间中,此处代表赋值的意思。变量值是保存到变量存储空间里的值。

(3)声明变量时不初始化,使用赋值语句赋值。示例如下:

var age;// 声明变量age,没有初始化
age = 20;// 将变量age赋值为20

(4)不使用关键字var声明,直接使用变量。本书不建议这样声明,通常的做法是在使用变量前先声明。示例如下:

age = 20;// 没有使用var声明,直接给变量age赋值为20
console.log(age);// 输出:20

提示: JavaScript声明变量时可以不初始化,但对变量进行初始化是一个良好的编程习惯。

2.1.2 变量命名规则与规范

项目开发中,需要自定义一些符号来代表一些名称,如变量名、函数名、数组名、对象名等,这些符号称为标识符。JavaScript中标识符的定义需要遵循以下规则。

(1)第一个字符必须是字母、下划线或美元符号,其后的字符可以是字母、数字、下划线或美元符号。

(2)不能包含空格。

(3)不能包含“+”“-”“@”“#”等特殊字符。

(4)不能和JavaScript中的关键字及保留字同名。

(5)区分大小写。

关键字是指JavaScript中一些带有特殊含义的名称,它们是语言结构的一部分。保留字是指当前JavaScript版本中没有用到,但是将来可能用到的关键字。JavaScript中常见关键字和保留字如表2-1和表2-2所示。

表2-1 JavaScript常见关键字

表2-2 JavaScript常见保留字

变量命名,示例如下:

var var;// 错误。var是关键字
var 1name;// 错误。变量名不能以数字开头
var user name;// 错误。变量名不能包含空格
var $userName;// 正确
var user+Name;// 错误。变量名不能包含“+”“-”“@”“#”等特殊字符
var userName; // 正确
var UserName; // 正确。userName和UserName是不同的两个变量名

变量命名时,不仅要遵守命名规则,还要遵循命名规范。命名规范是一种约定,也是程序员之间良好沟通的桥梁。

变量命名时,可以采用一些常见的命名法,例如驼峰式命名法和帕斯卡命名法。

(1)驼峰式命名法。第一个单词以小写字母开始,从第二个单词开始以后的每个单词首字母都采用大写字母,例如myFirstName、myLastName。

(2)帕斯卡命名法。帕斯卡命名法的每个单词首字母均大写,例如MyFirstName、MyLastName。变量命名时,尽量遵循以下规范。

(1)使用简单易识别的单词。比如需要为“成绩”起名,可以用score表示。

(2)描述要准确,符合语义,以清晰为主、简洁为辅。比如value和data都表示一个值,但是并不知道它代表的是什么值,应起见名识义的名字,例如inputValue和outputData。

提示: 良好的命名规范可以为团队合作开发推波助澜,无论在项目开发,还是产品维护上都起到了至关重要的作用。像遵守命名规则和规范一样,我们在日常生活中要遵守相应的制度与规定,并用以约束和指导自己的行为,成为合格的社会公民。

2.1.3 使用变量

使用变量时,有以下3种特殊情况。

(1)变量声明时没有初始化直接使用,此时变量的值是undefined。示例如下:

var age;// 声明变量age,没有初始化
console.log(age);// 输出:age的值是undefined

(2)变量没有声明,直接使用会报错。

console.log(age);// 没有声明变量age,输出age的值

上述代码在Chrome浏览器控制台中的报错信息,如图2-1所示。

图2-1 Chrome浏览器控制台中的报错信息

(3)尽量不使用name作为变量名。JavaScript中name既不是保留字,也不是关键字,因此用作变量时并不会报错。但Firefox、Safari、Chrome和Opera等浏览器内置了一个非标准的name属性,因此在这些浏览器中不能使用name作为变量名。 eMVJAhYK/jDVcXLhi0tTUTEnCPL1ViYSE/4S0rjFliiFBXT9m6N34NNO2NvX6z45

点击中间区域
呼出菜单
上一章
目录
下一章
×