JavaScript变量
- JavaScript的变量是松散类型的(可以用来保存任何类型的数据)
- 每个变量仅仅是一个用于保存值的占位符
声明(创建) JavaScript 变量
- 通过var关键字声明变量 :
var name;
- 只声明未赋值,该变量会保存一个特殊值undefined:
var name;
- 如果需要给该变量赋值,则可以直接用等号给变量赋值:
name="mango";
- 也可以在声明变量时对其赋值:
var name="mango";
- 可以一次声明一个变量,也可以一次声明多个变量 :
var name="mango",
age=18,
job="student";
- 如果变量重名,将产生覆盖
- 如果重新声明 JavaScript 变量,该变量的值不会丢失:
var name="mango";
var name;
注意:变量名严格区分大小写,且最好含义明确,以字母下划线开始加上数字、字母、下划线
JavaScript变量类型
数据类型的值 | 定义 | 数据类型 | 访问方式 |
---|---|---|---|
基本类 型值 | 简单的数据段 | String、Number、Boolean、null和undefined | 按值访问,因为可以操作在变量中实际的值 |
引用类型值 | 由多个值构成的对象 | 保存在内存中的对象 | JavaScript不允许直接访问内存中的位置,即不能直接操作对象的内存空间 |
全局变量与局部变量
- 全局变量:在哪里都能访问到的变量(又称成员变量)
函数外部或者进入javascript之后立即定义的变量和函数内部不带有var的变量 - 局部变量:只有局部能够访问的变量
函数内部用var定义的变量
var num3 = 333;//全局变量
//函数加载的时候只加载函数名不加载函数体
function fn() {
var num1 = 111;//局部变量
num2 = 222; //全局变量
console.log(num3);//输出333
}
fn();
//console.log(num1);//会报错!
console.log(num2);//输出222
console.log(num3);//输出333
var a = 1;
function test1() {
var a;//局部变量与全局变量重名时会覆盖全局变量,此时的a只有声明却未定义
alert(a);//所以执行alert值为undefined
a = 2;
alert(a);
}
test1();
alert(a);//undefined 2 1
隐式全局变量
没有直接声明的全局变量:
function fn1() {
//b和c都是隐式全局变量
var a = b = c = 1;
//e和f是隐式全局变量(分号隔开)
var d = 1;e = 2;f = 3;
//g h i都不是隐式全局变量(逗号隔开)
var g = 1,h = 2,i = 3;
}
fn1();
//console.log(a);//报错!
console.log(b);//输出1
console.log(c);//输出1
//console.log(d);//报错!
console.log(e);//输出2
console.log(f);//输出3
//console.log(g);//报错!
//console.log(h);//报错!
//console.log(i);//报错!