HLJ 发布于
2025-06-11 10:05:08
0阅读

JavaScript 全局对象

JavaScript 全局对象

在 JavaScript 中,全局对象(Global Object)是预定义的对象,提供了可在任何地方使用的变量和函数。在浏览器环境中,全局对象是 window;在 Node.js 环境中,全局对象是 global

浏览器环境中的全局对象 (window)

在浏览器中,所有全局变量和函数都是 window 对象的属性:

var globalVar = "Hello";
console.log(window.globalVar); // "Hello"

function globalFunc() {
  console.log("This is a global function");
}
window.globalFunc(); // "This is a global function"

Node.js 环境中的全局对象 (global)

在 Node.js 中,全局对象是 global

global.globalVar = "Hello Node.js";
console.log(globalVar); // "Hello Node.js"

常见的全局属性和函数

全局属性

  • Infinity - 表示无穷大的数值
  • NaN - 表示非数字值(Not-a-Number)
  • undefined - 表示未定义的值
  • globalThis - 在浏览器和 Node.js 中引用全局对象的标准化方式

全局函数

  1. 编码/解码函数

    • encodeURI() / decodeURI()
    • encodeURIComponent() / decodeURIComponent()
  2. 数值处理

    • isNaN() - 检查值是否为 NaN
    • isFinite() - 检查值是否为有限数
    • parseInt() - 将字符串解析为整数
    • parseFloat() - 将字符串解析为浮点数
  3. 其他函数

    • eval() - 执行字符串中的 JavaScript 代码(不推荐使用)
    • setTimeout() / clearTimeout() - 定时器函数
    • setInterval() / clearInterval() - 间隔定时器函数

ES6 新增的全局对象

  • Promise - 处理异步操作
  • Symbol - 创建唯一值
  • Map, Set, WeakMap, WeakSet - 集合对象
  • Proxy, Reflect - 元编程功能

全局 this 值

在全局执行上下文中,this 指向全局对象:

console.log(this === window); // 浏览器中为 true
console.log(this === global); // Node.js 中为 true

注意事项

  1. 避免过多使用全局变量,容易造成命名冲突
  2. 在模块化开发中,使用模块导出/导入代替全局变量
  3. globalThis 是 ES2020 新增的,用于统一不同环境下的全局对象访问方式
// 跨环境访问全局对象
const theGlobalObject = 
  typeof globalThis !== 'undefined' ? globalThis :
  typeof window !== 'undefined' ? window :
  typeof global !== 'undefined' ? global :
  typeof self !== 'undefined' ? self : {};
当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2025-06-11/806.html
最后生成于 2025-06-13 20:53:03
此内容有帮助 ?
0