一、作用域
作用域: 一个变量或者是一个函数的使用范围 JS中目前存在两种作用域,一种是全局作用域,第二种是局部作用域
1全局作用域
所有在script标签里面的代码,都处在全局作用域中 全局作用域在页面打开时创建全局对象GO(window对象),页面关闭时销毁GO对象 全局作用域中的变量是GO对象的属性名,变量的值是GO对象的属性值
2 函数作用域
所有在函数里面的代码,都处在函数作用域中 函数作用域在函数执行时创建AO对象,在函数结束时销毁AO对象 函数作用域中的变量是AO对象的属性名,变量的值是AO对象的属性值 当下一次执行函数时,会创建全新的A0对象
二、局部作用域的访问规则
1.局部可以访问到全局的内容
var a = 10;
var b = function(){
console.log("b");
}
function fn(){
console.log(a);
b();
}
2如果函数有嵌套关系 变量访问会逐层向上查找,如果当前作用域有改变量会先用当前作用域的
var a = 10;
console.log(a);
function fn1(){
var a = 20;
function fn2(){
console.log(a);
}
fn2();
}
fn1();
总结 ,嵌套作用域 访问 1.变量就近原则 2.会逐层向上查找(作用域是由小的到大的作用域查找) 3.注意: 访问一定不能向下查找(没有这个规则)
|