1.全局变量和局部变量
当JS解析器执行时,首先就会在执行环境里构建一个全局对象,我们定义的全局属性就是做为该对象的属性读取,在顶层代码中我们使用this关键字和window对象都可以访问到它。而函数体中的局部变量只在函数执行时生成的调用对象中存在,函数执行完毕时局部变量即刻销毁。
test2();
var a=1;//全局变量
function aa (){
var a=2;//局部变量
alert(a);
}
alert(a);
aa();
alert(a);
alert(window.a);
2.没有用var 定义的都是全局变量;
function aa(){
a=10;
}
aa();
alert(window.a);
3.js的解析
1.var function
2.赋值
alert(a);//undefined
var a=1;
alert(a);//1
4:作用域链
a=10;
function b(){
var a=20;
function c(){
var a=30;
console.log(a);
}
function cc(){
console.log(a);
}
c();
cc();
}
b();
作用顺序,本级函数到上级函数一直到window;
原文:http://www.cnblogs.com/yangjinfeng172/p/4842762.html