1、作用域
什么是作用域,变量在函数内部作用的范围/区域。有函数的地方就有作用域
2、全局作用域和局部作用域
全局变量:可以在函数内部和函数外部使用的变量,就是"全局变量"。
在函数外部定义的变量,就是"全局变量"。
"全局变量"即可以在函数外使用,也可以在函数内部使用。
"全局变量"在网页关闭时,自动消失(释放空间)。
总结:在函数外部定义的变量,就是全局作用域
局部变量:只能在函数内部使用的变量,称为"局部变量"。
"局部变量"在函数内部定义,在函数内使用。
"局部变量"在函数外部无法访问。
"局部变量"在函数执行完毕就消失了。
总结:在函数内部定义的变量,就是局部作用域
在函数内部,省略关键字var定义的变量是"全局变量"。
注意:var关键字尽量别省略,省略后"全局变量"和"局部变量"容易搞混淆。
定义变量都使用var
3、作用域链
-
全局作用域我们也称之为0级作用域
-
定义函数开启的作用域就是1级 - 2级 - 3级。。。作用城
-
JavaScript会将这些作用域链接在起形成个链条, 这个链条就是作用域链0--1---2---3---4
4、变量在作用域查找规则
-
先在当前找,找到就使用当前作用域找到的
-
如果当前作用域中没有找到,就去上一级作用域中查找
-
以此类推直到0级为止,如果0级作用域还没找到,就报告错
5、变量的生命周期
-
JavaScript 变量生命周期在它声明时初始化。
-
局部变量在函数执行完毕后销毁。
-
全局变量在页面关闭后销毁