直接赋值声明全局变量:在函数内外不使用关键字直接赋值,会隐式创建全局变量,但不推荐;2. 使用 var 在全局作用域声明:在所有函数外用 var 声明的变量为全局变量,可被任意位置访问;3. 使用 let 和 const 声明全局变量:在顶层作用域中声明的 let 和 const 变量具有全局作用域,但不会挂载到 window 对象上;4. 挂载到全局对象上:通过 window(浏览器)或 global(Node.js)添加属性创建全局变量。推荐在全局作用域显式使用 let 或 const 声明,避免隐式全局变量带来的潜在问题。

在 JavaScript 中声明全局变量有几种方式,关键在于变量的声明位置和方式是否使其作用域覆盖整个程序。
直接赋值声明全局变量
在任何函数外部或函数内部不使用 var、let 或 const 关键字而直接赋值,会自动创建全局变量。
注意:这种方式不推荐,容易引发意外错误。
例如:
myGlobal = "我是全局变量"; // 没有使用关键字,在全局作用域中创建变量function test() { anotherGlobal = "这也是全局变量"; // 函数内未用关键字声明}test();console.log(anotherGlobal); // 输出: 这也是全局变量
使用 var 在全局作用域声明
在所有函数之外使用 var 声明的变量属于全局变量,可在代码任意位置访问。
例如:
var globalVar = "全局变量";function show() { console.log(globalVar); // 可访问}show();
使用 let 和 const 声明全局变量
在模块以外的顶层作用域中使用 let 或 const 声明的变量,如果处于全局脚本环境中,也会成为全局变量,但不会挂载到 window(浏览器)对象上(与 var 不同)。
PHP超全局变量
1047 查看详情
例如:
let globalLet = "let 声明的全局变量";const globalConst = "const 声明的全局常量";function check() { console.log(globalLet, globalConst);}check();
挂载到全局对象上
在浏览器中,全局对象是 window;在 Node.js 中是 global。通过给这些对象添加属性,也能创建全局变量。
例如(浏览器环境):
window.myAppConfig = { api: "https://example.com" };// 或简写为self.globalData = "全局数据";function useGlobal() { console.log(myAppConfig.api); // 可访问}
基本上就这些常见方式。推荐在全局作用域使用 const 或 let 明确声明,避免隐式创建,提高代码可维护性。
以上就是js声明全局变量的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/869547.html
微信扫一扫
支付宝扫一扫