1、变量作用域
作用域 : 作用范围
全局变量:在函数体外部定义的变量,范围是整个程序
局部变量:在函数体内部使用var明确定义的变量,范围是变量所在的函数(函数体)函数调用完成后,局部变量会自动销毁。所有的形式参数都是局部变量
时
作用域链 : 在函数体内部的变量,会自动的向上查找,如果在函数体内部找到了,就返回,说明此时操作的是局部变量。如果在函数体内部没有找到,继续向函数体外部查找 ,如果找到了 ,说明此时操作的是全局变量。 这个查找的过程 就称为 作用域链。
为了防止全局变量的污染 ,尽可能的使用局部变量
2、变量的提升
函数体内部定义的变量,会将变量提升到函数的最顶端,只提升声明,不赋值
例如 :
function fn(){
alert( num );//undefined
var num = 10;
}
解析成 :
function fn(){
var num;