什 么是变量
变量 是储存数据信息的容器 。
变量 被认为是有名字的容器 。在代码中,使 用变量 名为值命名,需要遵循 一定的规则。
注意:
在 JavaScript 代码中,必须先声明 一个变量 ,这个变量 才能被使 用。
JavaScript 中的变量 是弱类型的,也被称之为松散型的。
所谓弱类型/松散型,就是指可以 用来保存任何类型的数据。
变量 的声明
在 JavaScript 中,使 用变量 前应当先声明。变量 是使 用关键字 var 声明的。
只声明,未初始化,变量 的值 自动取值为 undefined
一 行 代码只声明 一个变量 :
var a; // 值为 undefined var num; // 值为 undefined
一 行 代码声明多个变量 :
var x, y, z; // 值为 undefined
将变量 的声明和初始化合写在 一起
一 行 代码只声明 一个变量 并赋值:
var sum = 100; // 值为 100
var msg = "this is a message"; // 值为 this is a message
一 行 代码声明多个变量 并赋值:
var x = 0, y = 1, z = 2;
var x = y = z = 10; // x y z 值都为 10
命名规则
变量 的命名需要遵守 一定的规则,具体规则如下:
必须以字 母、下划线 _ 、美元符号 $ 开始。
不 能以数字开头。
不 能使 用关键字和保留 字作为名称。
由于 JavaScript 是区分 大 小写的, 大写字 母与 小写字 母并不 冲突。
名称最好有明确的含义。
可以采 用“下划线命名法”、“驼峰命名法”等。
声明的问题
重复声明
使 用 var 语句 重复声明变量 是合法且 无害的。但是,如果重复声明并初始化的,由于 JavaScript 变量 只能存储 一个数据,之前存储的数据会被覆盖掉。
var sum = 100; var sum = "abc";
遗漏 的声明
直接读取 一个没有声明的变量 的值,JavaScript 会报错。
为 一个没有声明的变量 初始化,是合法的,但并不 推荐这样使 用。
变量 的使 用
对声明的变量 既可以读取操作,也可以赋值操作。
读取操作
var sum; // 只声明未初始化
console.log(sum); // 输出 undefined var msg = "hello"; // 声明并初始化
console.log(msg); // 输出 hello
赋值操作
var sum; // 只声明未初始化 sum = 100; // 初始化操作
var msg = "hello"; // 声明并初始化 msg = "world"; // 重新赋值
变量 提升
JavaScript 引擎的 工作 方式是,先解析代码,获取所有被声明的变量 ,然后再 一 行 一 行 的运 行 。这造成的结果就是,所有的变量 的声明语句 ,都会被提升到代码的头部,这就叫做变量 提升(hoisting)。
例 如:
console.log(a); var a = 1; console.log(a);
输出结果:
undefined 1
说明:
1. 上 面的代码等同于:
var a; console.log(a); a = 1; console.log(a);
2. 变量 声明被提升到头部时还没有赋值,所以默认等于 undefined 。
3. 变量 提升只对 var 命令声明的变量 有效。如果 一个变量 不 是 用 var 声明的,就不 会发 生变量 提升。