变量的生存周期:
1.全局变量的生存周期是永久的,除非我们主动销毁。
ps:变量的永久生存,且可以随时调用,但是使用时要适度,正是因为它的生命周期长,所以将占据更多的内存。全局变量会在页面关闭后销毁。
2.函数内部的局部变量,在函数执行完毕后销毁。
ps:调用函数结束,局部变量确实会销毁。但不是完全销毁,而是一直函数内部环境中存活着,当函数再度被调用时,变量就”复活“了。但是存在闭包这个特殊情况不会被销毁。
ps:在局部环境中,出现全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。这是因为上文说过作用域链的原因,先由局部开始搜索变量,当局部找到该变量的时候,就不会再我继续往父级找变量了。
function f(){
var a=1;
a++;
return a;
}
var b=f();
console.log(b);
console.log(b);//两个都是输出2,因为函数执行完毕后局部变量就会被销毁