前端JS--Day26
作者:互联网
作用域:规定了变量能够被访问的范围。
1.局部作用域:
① 函数作用域:在函数内部声明的变量只能在函数内部被访问,外部无法直接访问。
注意:Ⅰ函数的参数也是函数内部的局部变量。Ⅱ函数执行完毕,函数内部变量被清空(垃圾回收机制)。
② 块作用域:只要是被{}包裹的代码称为代码块,外部可能无法访问。只有当var声明的变量可以被访问。
注意:Ⅰlet和const声明的变量会产生块作用域,var不会产生。Ⅱ不同代码块之间的变量无法互相访问。Ⅲ推荐使用let和const
2.全局作用域:<script>标签和.js文件的最外层就是全局作用域,全局作用域中声明的变量,任何其他作用域都可以访问。
① 为window对象动态添加属性默认是全局的。② 函数中未用任何关键字声明的变量也是全局变量。 ③ 尽可能少的声明全局变量,防止全局变量被污染。
作用域链:本质是底层的变量查找机制。(就近原则)
① 在函数被执行时,会优先查找当前作用域中的变量。
② 若当前作用域查找不到,则会依次逐级查找父级作用域直到全局作用域。
嵌套关系的作用域串联起来形成了作用域链,相同作用域链按照从小到大的规则依次查找变量,子级作用域可以访问父级作用域,父级作用域无法访问子级作用域。
JS垃圾回收机制:
标签:函数,访问,--,Day26,JS,作用域,查找,全局,变量 来源: https://www.cnblogs.com/LWHCoding/p/16683512.html