javascript 作用域详解
作用域 和 作用域链(链式作用域)
全局作用域
- 直接编写在script标签中的JS代码,都在全局作用域。
- 全局作用域在页面打开时创建,页面关闭时销毁。
- 全局作用域中只有一个全局对象
window
。他代表的是一个浏览器窗口,它由浏览器创建我们可以直接使用 - 在全局作用域中:
- 创建变量都会作为
window
对象的属性保存 - 创建的函数都会作为
window
对象的方法保存
- 创建变量都会作为
函数作用域
- 调用函数时创建函数作用域,函数执行完毕以后,函数作用域销毁。
- 每调用一次会创建一个新的函数作用域,他们之间是相互独立的
- 在函数作用域中可以访问到全局作用域的变量
- 当在函数作用域操作一个变量时:
- 他会首先在自身作用域中寻找,如果有就直接使用
- 没有就向上一级作用域中寻找,直到找到全局作用域
- 如果全局作用域中依然没有找到,就会报错ReferenceError
块作用域
- 由
{}
界定的代码区域,let声明的变量具备可访问块作用域 - 允许块级作用域{}的任意嵌套
示例:
1 | { |
参考博文:
- 本文标题:javascript 作用域详解
- 本文作者:mr00ff
- 创建时间:2021-06-18 17:48:22
- 本文链接:https://www.sysxo.com/javascript/JavaScript-作用域.html
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
评论