含义:变量是用于存储信息的容器.
1.变量的声明
var x = 5; //直接声明并赋值
var y;
y = 6; //先声明再赋值
var name = "John ";
var sum = x + y;
name = name + sum;
则: alert(name);显示为 name11 (和JavaScript语言特性有关:弱类型)
alert(sum);显示为11
//一条语句多条变量
var name1 = "John", age = 30, job = "carpenter";
//声明无值得变量
var name2; //变量name2的值是:undefine
//重新声明
var name3 = "john"; var name3;//重新声明之后name3的值还是John,并且不会报错
2.变量类型
值类型:
占用空间固定,保存在栈中
保存与复制的是值本身
使用typeof检测数据的类型
基本类型数据是值类型
引用类型:
占用空间不固定,保存在堆中
保存和复制的是指向对象的一直指针
使用instanceof检测数据的类型
使用new()方法构造出的对象是引用性
3.变量的命名
变量必须以字母开头
变量也能以$和_符号开头(不推荐)
变量对大小字写敏感(a和A是不同的变量)
4.声明建议
先声明,后读写
先赋值,后运算
5.作用域
全局变量:在函数体外的定义的变量,或在函数体内部定义无var声明的变量,在任何位置均可调用
局部变量:在函数体内用var定义的变量,或函数的参数变量,在函数内部调用
优先级:局部变量高于同名全局变量
参数变量高于同名全局变量
局部变量高于同名参数变量
声明周期:全局变量,除非被删除,否则会一直存在
局部变量,自声明开始至函数运行结束或被显示删除
回收机制:标记删除,引用计数