JavaScript 函数作用域
在javaScript 中 有两种作用域类型:
全局作用域和局部作用域
全局作用域
var a=1;
if(true){
console.log(a); //1
}
全局中定义a变量,为全局变量。全局变量在全局有效,在任何地方都能访问。
1)在函数外定义的变量都是全局变量
2)window 是顶级变量 是全局变量
var a=10; // window.a=10;
console.log(a);
3)未声明的变量赋值,变量也会成为全局变量
a=10;
function fn(){
console.log(a); //10
}
fn();
局部作用域
function fn(){
var c=2;
}
fn();
console.log(c); //报错 c变量未定义
局部变量:在函数内 生成变量,只供局部作用调用,外部无法调用
JavaScript 变量的有效期
JavaScript 变量的有效期始于其被创建时。
局部变量会在函数完成时被删除。
全局变量会在您关闭页面是被删除。
全局作用域与局部作用域的比较:
全局作用域,生命周期长,占用内存,推荐多使用局部作用域(使用完可以快速被回收)。