如何全面掌握JavaScript的作用域功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1848个文字,预计阅读时间需要8分钟。
前言+作用域决定了变量的生命周期和可见性,变量在作用域范围之外是不可见的。+JavaScript的作用域包括:模块作用域,函数作用域,块作用域,词法作用域和全局作用域。+全局作用域+
前言
作用域决定了变量的生命周期和可见性,变量在作用域范围之外是不可见的。
JavaScript 的作用域包括:模块作用域,函数作用域,块作用域,词法作用域和全局作用域。
全局作用域
在任何函数、块或模块范围之外定义的变量具有全局作用域。可以在程序的任意位置访问全局变量。
当启用模块系统时,创建全局变量会变得困难,但仍然可以做到这一点。可以在 HTML 中定义一个变量,这个变量需要在函数之外声明,这样就可以创建一个全局变量:
<script> let GLOBAL_DATA = { value : 1}; </script> console.log(GLOBAL_DATA);
当没有模块系统时,创建全局变量会容易很多。在任何文件中的函数外声明的变量都是全局变量。
全局变量贯穿于程序的整个生命周期。
另一种创建全局变量的方法是在程序的任意位置使用 window 全局对象:
window.GLOBAL_DATA = { value: 1 };
这样 GLOBAL_DATA 变量会随处可见。
console.log(GLOBAL_DATA)
不过你也知道这种做法是不好的。
模块作用域
如果不启用模块,在所有函数之外声明的变量是全局变量。在模块中,在函数外部声明的变量都是隐藏的,除非显式导出,否则不可用于其他模块。
导出使函数或对象可用于其他模块。
本文共计1848个文字,预计阅读时间需要8分钟。
前言+作用域决定了变量的生命周期和可见性,变量在作用域范围之外是不可见的。+JavaScript的作用域包括:模块作用域,函数作用域,块作用域,词法作用域和全局作用域。+全局作用域+
前言
作用域决定了变量的生命周期和可见性,变量在作用域范围之外是不可见的。
JavaScript 的作用域包括:模块作用域,函数作用域,块作用域,词法作用域和全局作用域。
全局作用域
在任何函数、块或模块范围之外定义的变量具有全局作用域。可以在程序的任意位置访问全局变量。
当启用模块系统时,创建全局变量会变得困难,但仍然可以做到这一点。可以在 HTML 中定义一个变量,这个变量需要在函数之外声明,这样就可以创建一个全局变量:
<script> let GLOBAL_DATA = { value : 1}; </script> console.log(GLOBAL_DATA);
当没有模块系统时,创建全局变量会容易很多。在任何文件中的函数外声明的变量都是全局变量。
全局变量贯穿于程序的整个生命周期。
另一种创建全局变量的方法是在程序的任意位置使用 window 全局对象:
window.GLOBAL_DATA = { value: 1 };
这样 GLOBAL_DATA 变量会随处可见。
console.log(GLOBAL_DATA)
不过你也知道这种做法是不好的。
模块作用域
如果不启用模块,在所有函数之外声明的变量是全局变量。在模块中,在函数外部声明的变量都是隐藏的,除非显式导出,否则不可用于其他模块。
导出使函数或对象可用于其他模块。

