首页 > 编程笔记
JavaScript变量的声明和使用
JavaScript 用变量保存在程序执行过程中可能发生变化的数据。
为了便于区分每个变量,开发者可以给每个变量起一个简洁明了、容易记住的名字,也就是“变量名”。变量名指向计算机内存中的某个地址,真正的数据存储在内存中。这和日常生活中取快递的过程存在相似之处。
在日常生活中,当快递被送到快递超市后,快递超市会给顾客发送一个“提货码”,之后顾客可以通过出示“提货码”给快递超市的服务人员,从而拿到自己的快递。在这个过程中,“快递超市”相当于“内存”,顾客在网上购买的物品相当于存在“内存”中的“变量”,“提货码”相当于“变量名”,顾客不需要知道自己的“物品”存在快递超市的哪个角落,只要通过“提货码”就可以找到自己的“物品”。
1) 使用关键字 var 可以一次声明一个或多个变量,不同变量间使用逗号隔开。示例如下:
2) 声明变量时可以不初始化,此时其值默认为 undefined,也可以在声明变量的同时初始化变量。示例如下:
3) 声明变量时不初始化,使用赋值语句赋值。示例如下:
4) 不使用关键字 var 声明,直接使用变量。这里不建议采用此方式,通常的做法是在使用变量前先声明。示例如下:
1) 变量声明时没有初始化直接使用,此时变量的值是 undefined。示例如下:
2) 变量没有声明,直接使用会报错。
3) 尽量不使用 name 作为变量名。JavaScript 中 name 既不是保留字,也不是关键字,因此用作变量时并不会报错。但 Firefox、Safari、Chrome 和 Opera 等浏览器内置了一个非标准的 name 属性,因此在这些浏览器中不能使用 name 作为变量名。
为了便于区分每个变量,开发者可以给每个变量起一个简洁明了、容易记住的名字,也就是“变量名”。变量名指向计算机内存中的某个地址,真正的数据存储在内存中。这和日常生活中取快递的过程存在相似之处。
在日常生活中,当快递被送到快递超市后,快递超市会给顾客发送一个“提货码”,之后顾客可以通过出示“提货码”给快递超市的服务人员,从而拿到自己的快递。在这个过程中,“快递超市”相当于“内存”,顾客在网上购买的物品相当于存在“内存”中的“变量”,“提货码”相当于“变量名”,顾客不需要知道自己的“物品”存在快递超市的哪个角落,只要通过“提货码”就可以找到自己的“物品”。
变量的声明
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声明变量时可以不初始化,但对变量进行初始化是一个良好的编程习惯。
变量的使用
使用变量时,有以下 3 种特殊情况。1) 变量声明时没有初始化直接使用,此时变量的值是 undefined。示例如下:
var age; // 声明变量age,没有初始化 console.log(age); // 输出:age的值是undefined
2) 变量没有声明,直接使用会报错。
console.log(age); // 没有声明变量age,输出age的值上述代码在 Chrome 浏览器控制台中的报错信息是:
Uncaught ReferenceError:age is not defined
。3) 尽量不使用 name 作为变量名。JavaScript 中 name 既不是保留字,也不是关键字,因此用作变量时并不会报错。但 Firefox、Safari、Chrome 和 Opera 等浏览器内置了一个非标准的 name 属性,因此在这些浏览器中不能使用 name 作为变量名。