js中的变量搜索顺序:找变量时,先找局部变量,如果没有局部变量;再找全局变量。变量的生命周期从声明开始,局部变量在函数执行完毕后被销毁,全局变量在页面关闭时被销毁。同时全局变量的值会一直保留,除非被覆盖或销毁。
如何查找全局变量
- 最外层的函数和和最外层函数外面的变量都是全局变量。因为函数是可以嵌套的,所以找全局变量时,要找最外层函数;而且函数本身也是一个变量,特殊变量,其名字就是变量名。
- 没有用 var声明的变量,为全局变量,即使位置在函数体内部
- 所有Window对象的属性也是全局变量。
var v = "hello"; //函数体外的变量,全局变量 var a = 100 b = 10; //b也是全局变量 function test (){ v="11"; //没有用var声明的变量,全局变量 console.log(v); var v = "world"; //函数体内部的变量,局部变量 } test();
注:作为定义的变量。位置不管在全局或者局部,在局部时,一定要在使用前定义好。