2.1 变量的命名规则
JavaScript 变量命名需要遵循以下三点:
- 首字母必须是字母,下划线(_)
- 其他的字符可以是下划线,美元符号,任意字母或者数字
- 不能是关键字或者保留字或者空格
2.2 声明变量
JavaScript中变量用“var”来声明,例如:
var name;
此时name的值为undefined,可以通过函数isNaN来判断一个变量值是否为空,比如此时isNaN(name)的值为true。
2.3 变量的赋值
变量可以在声明时初始化来赋值,例如:
var name =”Ann”;
也可以用其他变量为变量赋值,例如:
var name = “Ann”;
var othername=name;
alert(othername);
使用其他变量赋值时需要注意的是基本数据类型和复杂数据类型会有很大的区别。基本数据类型如字符串和数值等,在赋值时变量会复制一份独立的数据副本,比如此时修改name的值,othername的值不会发生改变。而面对复杂数据类型比如数组时,两者将引用同一个对象,而不是复制副本,所以其中一个变量改变内容时,其他变量的值也会跟着改变。具体为什么会这样,在第七章中有解释。比如在下面的例子中,会弹出john0的对话框。
var names = new Array(2);
names[0]= "John";
names[1] = "Andy";
var ddd=names;
names[0]="john0";
alert(ddd[0]);
可以同时声明多个变量,例如:
var name=”Ann”, age=11;
可以随意更改变量存储类型,例如:
var name=”Ann”;
name=123;
还可以不声明变量就直接使用。
var name = “Ann”;
nameid=name+”123”;
alert(nameid);
2.4 变量的作用域和生存期
变量的作用域就是我们可以使用该变量的代码范围。根据作用域可以分为局部变量和全局变量。在函数体外定义的变量的作用域为整个页面,当然函数之中也可以访问该变量。在函数体之内定义的变量作用域为函数之中,只能在函数中使用。
局部变量的生存期只在函数开始执行到结束,函数调用之后,其中所定义的所有局部变量都会被释放,数据会丢失。而全局变量的生存期为变量声明开始到页面关闭。
注意:在其他代码块比如switch,if,for等语句中定义的变量同样为全局变量。