在Node.js中,全局对象是在任何模块中都可以直接访问的对象,而不需要进行特殊的引入或初始化。以下是一些常见的Node.js全局对象:
- global:这是Node.js中最根本的全局对象,类似于浏览器中的
window
对象。所有的全局变量(除了global
本身)都是global
对象的属性。 - process:这是一个提供有关当前Node.js进程的信息并与之交互的对象。它提供了诸如环境变量、命令行参数、进程版本、操作系统等信息,并且可以用来退出进程。
- 例如,
process.env
用于访问环境变量,process.argv
用于获取命令行参数。
- 例如,
- console:这是一个用于打印输出到stdout和stderr的对象。它提供了诸如
console.log()
,console.error()
,console.warn()
等方法。 -
Buffer:这是一个全局可用的类型,用于处理二进制数据。在Node.js中,由于JavaScript原生不支持二进制数据,因此
Buffer
类被引入来处理这种情况。- 例如,读取文件时通常会得到Buffer对象,然后可以将其转换为字符串或其他格式。
- setImmediate, setTimeout, setInterval, clearTimeout, clearInterval:这些是Node.js中的全局函数,用于处理和控制异步操作。
setImmediate
用于将回调函数排入队列,在当前事件循环结束时执行。setTimeout
和setInterval
用于在指定的毫秒数后执行回调函数,或者每隔指定的毫秒数执行回调函数。clearTimeout
和clearInterval
用于取消由setTimeout
和setInterval
设置的定时器。
- __filename:这是一个包含当前模块文件路径的全局变量。
- __dirname:这是一个包含当前模块目录路径的全局变量。
- module 和 exports / require:虽然它们通常被视为模块级别的对象,但在每个模块内部,它们实际上是全局可访问的。
module
表示当前模块,exports
是模块导出的对象,require
函数用于引入其他模块。
请注意,直接在全局作用域中定义变量(不使用var
, let
, const
)在Node.js中通常是不推荐的,因为这可能会导致代码难以维护和理解。相反,应该使用模块作用域,并通过exports
或module.exports
导出需要共享的部分。