global(全局变量)#

这些对象在所有的模块中都可用。 以下的变量虽然看似全局的,但实际上不是。 它们仅存在于模块的作用域中,参见模块系统的文档

此处列出的对象特定于 Node.js。 有些内置对象是 JavaScript 语言本身的一部分,它们也是全局可访问的。

Buffer 类#

用于处理二进制数据。请参见 Buffer 文档

__dirname#

此变量虽然看似全局的,但实际上不是。 请参见 __dirname 文档。

__filename#

此变量虽然看似全局的,但实际上不是。 请参见 __filename 文档。

clearImmediate(immediateObject)#

clearImmediate定时器章节中描述。

clearInterval(intervalObject)#

clearInterval定时器章节中描述。

clearTimeout(timeoutObject)#

clearTimeout定时器章节中描述。

console#

用于打印到 stdout 和 stderr。 请参见 console 文档。

exports#

此变量虽然看似全局的,但实际上不是。 请参见 exports 文档。

global#

  • <Object> 全局的命名空间对象。

在浏览器中,顶层作用域是全局作用域。 这意味着在浏览器中, var something 将会定义一个新的全局变量。 在 Node.js 中,则是不一样的。 顶层作用域不是全局作用域,Node.js 模块中的 var something 的作用域只在该模块内。

module#

此变量虽然看似全局的,但实际上不是。 请参见 module 文档。

process#

进程对象。 请参见 process 文档。

queueMicrotask(callback)#

queueMicrotask() 方法会将微任务放入队列以便调用 callback。 如果 callback 抛出异常,则将会触发 process 对象'uncaughtException' 事件。

微任务队列由 V8 进行管理,可以通过与 process.nextTick() 队列(由 Node.js 管理)类似的方式进行使用。 在 Node.js 事件循环的每次轮询中, process.nextTick() 队列始终在微任务队列之前执行。

// 在这里, `queueMicrotask()` 用于确保 'load' 事件总是异步地触发,且因此始终如一。 
// 在这里使用 `process.nextTick()` 会导致 'load' 事件总是在任何其他 promise 任务之前触发。

DataHandler.prototype.load = async function load(key) {
  const hit = this._cache.get(url);
  if (hit !== undefined) {
    queueMicrotask(() => {
      this.emit('load', hit);
    });
    return;
  }

  const data = await fetchData(key);
  this._cache.set(url, data);
  this.emit('load', data);
};

require()#

此变量虽然看似全局的,但实际上不是。 请参见 require() 文档。

setImmediate(callback[, ...args])#

setImmediate定时器章节中描述。

setInterval(callback, delay[, ...args])#

setInterval定时器章节中描述。

setTimeout(callback, delay[, ...args])#

setTimeout定时器章节中描述。

TextDecoder#

WHATWG 的 TextDecoder 类。 参见 TextDecoder 文档。

TextEncoder#

WHATWG 的 TextEncoder 类。 参见 TextEncoder 文档。

URL#

WHATWG 的 URL 类。 请参见 URL 文档。

URLSearchParams#

WHATWG 的 URLSearchParams 类。 请参见 URLSearchParams 文档。

WebAssembly#

作为所有的 W3C WebAssembly 的相关功能的命名空间的对象。 关于用法和兼容性,请参见 Mozilla 开发者网站