标签:函数 访问 -- Day26 JS 作用域 查找 全局 变量
作用域:规定了变量能够被访问的范围。
1.局部作用域:
① 函数作用域:在函数内部声明的变量只能在函数内部被访问,外部无法直接访问。
注意:Ⅰ函数的参数也是函数内部的局部变量。Ⅱ函数执行完毕,函数内部变量被清空(垃圾回收机制)。
② 块作用域:只要是被{}包裹的代码称为代码块,外部可能无法访问。只有当var声明的变量可以被访问。
注意:Ⅰlet和const声明的变量会产生块作用域,var不会产生。Ⅱ不同代码块之间的变量无法互相访问。Ⅲ推荐使用let和const
2.全局作用域:<script>标签和.js文件的最外层就是全局作用域,全局作用域中声明的变量,任何其他作用域都可以访问。
① 为window对象动态添加属性默认是全局的。② 函数中未用任何关键字声明的变量也是全局变量。 ③ 尽可能少的声明全局变量,防止全局变量被污染。
作用域链:本质是底层的变量查找机制。(就近原则)
① 在函数被执行时,会优先查找当前作用域中的变量。
② 若当前作用域查找不到,则会依次逐级查找父级作用域直到全局作用域。
嵌套关系的作用域串联起来形成了作用域链,相同作用域链按照从小到大的规则依次查找变量,子级作用域可以访问父级作用域,父级作用域无法访问子级作用域。
JS垃圾回收机制:
标签:函数,访问,--,Day26,JS,作用域,查找,全局,变量 来源: https://www.cnblogs.com/LWHCoding/p/16683512.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。