Skip to content

全局对象

这些对象在所有模块中都可用。

以下变量可能看起来是全局的,但实际上不是。它们仅存在于 CommonJS 模块 的作用域内:

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

类: AbortController

[历史]

版本变更
v15.4.0不再是实验性的。
v15.0.0, v14.17.0添加于:v15.0.0, v14.17.0

一个用于在选定的基于 Promise 的 API 中发出取消信号的实用程序类。该 API 基于 Web API AbortController

js
const ac = new AbortController();

ac.signal.addEventListener('abort', () => console.log('Aborted!'),
                           { once: true });

ac.abort();

console.log(ac.signal.aborted);  // 打印 true

abortController.abort([reason])

[历史]

版本变更
v17.2.0, v16.14.0添加了新的可选 reason 参数。
v15.0.0, v14.17.0添加于:v15.0.0, v14.17.0
  • reason <any> 一个可选的原因,可以在 AbortSignalreason 属性上检索。

触发中止信号,导致 abortController.signal 发出 'abort' 事件。

abortController.signal

添加于: v15.0.0, v14.17.0

类: AbortSignal

添加于: v15.0.0, v14.17.0

当调用 abortController.abort() 方法时,AbortSignal 用于通知观察者。

静态方法: AbortSignal.abort([reason])

[历史]

版本变更
v17.2.0, v16.14.0添加了新的可选 reason 参数。
v15.12.0, v14.17.0添加于: v15.12.0, v14.17.0

返回一个已中止的 AbortSignal

静态方法: AbortSignal.timeout(delay)

添加于: v17.3.0, v16.14.0

  • delay <number> 在触发 AbortSignal 之前等待的毫秒数。

返回一个新的 AbortSignal,它将在 delay 毫秒后被中止。

静态方法: AbortSignal.any(signals)

添加于: v20.3.0, v18.17.0

  • signals <AbortSignal[]> 用于组合新的 AbortSignalAbortSignal 数组。

返回一个新的 AbortSignal,如果提供的任何信号被中止,它将被中止。 它的 abortSignal.reason 将被设置为导致其中止的 signals 之一。

事件: 'abort'

添加于: v15.0.0, v14.17.0

当调用 abortController.abort() 方法时,会触发 'abort' 事件。 该回调函数会被调用,带有一个对象参数,该对象参数带有一个 type 属性,其值为 'abort'

js
const ac = new AbortController();

// 使用 onabort 属性...
ac.signal.onabort = () => console.log('aborted!');

// 或者 EventTarget API...
ac.signal.addEventListener('abort', (event) => {
  console.log(event.type);  // 打印 'abort'
}, { once: true });

ac.abort();

AbortSignal 关联的 AbortController 仅触发一次 'abort' 事件。 我们建议代码在添加 'abort' 事件监听器之前检查 abortSignal.aborted 属性是否为 false

附加到 AbortSignal 的任何事件监听器都应使用 { once: true } 选项(或者,如果使用 EventEmitter API 附加监听器,则使用 once() 方法),以确保在处理 'abort' 事件后立即删除事件监听器。 如果不这样做,可能会导致内存泄漏。

abortSignal.aborted

加入于: v15.0.0, v14.17.0

  • 类型: <boolean>AbortController 被中止后为 True。

abortSignal.onabort

加入于: v15.0.0, v14.17.0

一个可选的回调函数,可以由用户代码设置,以便在 abortController.abort() 函数被调用时得到通知。

abortSignal.reason

加入于: v17.2.0, v16.14.0

触发 AbortSignal 时指定的可选原因。

js
const ac = new AbortController();
ac.abort(new Error('boom!'));
console.log(ac.signal.reason);  // Error: boom!

abortSignal.throwIfAborted()

加入于: v17.3.0, v16.17.0

如果 abortSignal.abortedtrue,则抛出 abortSignal.reason

类: Blob

加入于: v18.0.0

请参阅 <Blob>

类: Buffer

加入于: v0.1.103

用于处理二进制数据。 参阅 buffer 部分

类: ByteLengthQueuingStrategy

加入于: v18.0.0

[稳定度: 1 - 实验性]

稳定度: 1 稳定度: 1 - 实验性。

一个浏览器兼容的 ByteLengthQueuingStrategy 实现。

__dirname

这个变量可能看起来是全局的,但实际上不是。 参阅 __dirname

__filename

这个变量可能看起来是全局的,但实际上不是。 参阅 __filename

atob(data)

加入于: v16.0.0

[稳定度: 3 - 遗留]

稳定度: 3 稳定度: 3 - 遗留。 请使用 Buffer.from(data, 'base64') 代替。

buffer.atob() 的全局别名。

BroadcastChannel

添加于: v18.0.0

请参阅 <BroadcastChannel>

btoa(data)

添加于: v16.0.0

[稳定度: 3 - 废弃]

稳定度: 3 稳定性: 3 - 废弃。请改用 buf.toString('base64')

buffer.btoa() 的全局别名。

clearImmediate(immediateObject)

添加于: v0.9.1

clearImmediatetimers 部分中描述。

clearInterval(intervalObject)

添加于: v0.0.1

clearIntervaltimers 部分中描述。

clearTimeout(timeoutObject)

添加于: v0.0.1

clearTimeouttimers 部分中描述。

CloseEvent

添加于: v23.0.0

CloseEvent 类。有关更多详细信息,请参阅 CloseEvent

CloseEvent 的浏览器兼容实现。使用 --no-experimental-websocket 命令行标志禁用此 API。

类: CompressionStream

添加于: v18.0.0

[稳定度: 1 - 实验性]

稳定度: 1 稳定性: 1 - 实验性。

CompressionStream 的浏览器兼容实现。

console

添加于: v0.1.100

用于打印到 stdout 和 stderr。请参阅 console 部分。

类: CountQueuingStrategy

添加于: v18.0.0

[稳定度: 1 - 实验性]

稳定度: 1 稳定性: 1 - 实验性。

CountQueuingStrategy 的浏览器兼容实现。

Crypto

[历史记录]

版本变更
v23.0.0不再是实验性的。
v19.0.0不再受 --experimental-global-webcrypto CLI 标志控制。
v17.6.0, v16.15.0添加于: v17.6.0, v16.15.0

[稳定: 2 - 稳定]

稳定: 2 稳定性: 2 - 稳定。

<Crypto> 的浏览器兼容实现。 仅当 Node.js 二进制文件在编译时包含对 node:crypto 模块的支持时,此全局变量才可用。

crypto

[历史记录]

版本变更
v23.0.0不再是实验性的。
v19.0.0不再受 --experimental-global-webcrypto CLI 标志控制。
v17.6.0, v16.15.0添加于: v17.6.0, v16.15.0

[稳定: 2 - 稳定]

稳定: 2 稳定性: 2 - 稳定。

Web Crypto API 的浏览器兼容实现。

CryptoKey

[历史记录]

版本变更
v23.0.0不再是实验性的。
v19.0.0不再受 --experimental-global-webcrypto CLI 标志控制。
v17.6.0, v16.15.0添加于: v17.6.0, v16.15.0

[稳定: 2 - 稳定]

稳定: 2 稳定性: 2 - 稳定。

<CryptoKey> 的浏览器兼容实现。 仅当 Node.js 二进制文件在编译时包含对 node:crypto 模块的支持时,此全局变量才可用。

CustomEvent

[历史记录]

版本变更
v23.0.0不再是实验性的。
v22.1.0, v20.13.0CustomEvent 现在是稳定的。
v19.0.0不再受 --experimental-global-customevent CLI 标志控制。
v18.7.0, v16.17.0添加于: v18.7.0, v16.17.0

[稳定: 2 - 稳定]

稳定: 2 稳定性: 2 - 稳定

CustomEvent Web API 的浏览器兼容实现。

类: DecompressionStream

添加于: v18.0.0

[Stable: 1 - Experimental]

Stable: 1 稳定性: 1 - 实验性的。

一个浏览器兼容的 DecompressionStream 实现。

Event

[历史]

版本变更
v15.4.0不再是实验性的。
v15.0.0添加于: v15.0.0

一个浏览器兼容的 Event 类实现。 详情请查看 EventTargetEvent API

EventSource

添加于: v22.3.0, v20.18.0

[Stable: 1 - Experimental]

Stable: 1 稳定性: 1 - 实验性的。 使用 --experimental-eventsource CLI 标志启用此 API。

一个浏览器兼容的 EventSource 类实现。

EventTarget

[历史]

版本变更
v15.4.0不再是实验性的。
v15.0.0添加于: v15.0.0

一个浏览器兼容的 EventTarget 类实现。 详情请查看 EventTargetEvent API

exports

这个变量可能看起来是全局的,但实际上不是。 请查看 exports

fetch

[历史]

版本变更
v21.0.0不再是实验性的。
v18.0.0不再需要 --experimental-fetch CLI 标志。
v17.5.0, v16.15.0添加于: v17.5.0, v16.15.0

[Stable: 2 - Stable]

Stable: 2 稳定性: 2 - 稳定的

一个浏览器兼容的 fetch() 函数实现。

类: File

添加于: v20.0.0

请查看 <File>

FormData

[历史记录]

版本变更
v21.0.0不再是实验性的。
v18.0.0不再需要 --experimental-fetch 命令行标志。
v17.6.0, v16.15.0添加于:v17.6.0, v16.15.0

[稳定: 2 - 稳定]

稳定: 2 稳定性: 2 - 稳定

一个浏览器兼容的 <FormData> 实现。

global

添加于: v0.1.27

[稳定: 3 - 遗留]

稳定: 3 稳定性: 3 - 遗留。请使用 globalThis 代替。

在浏览器中,顶层作用域传统上是全局作用域。 这意味着 var something 将定义一个新的全局变量,但在 ECMAScript 模块中除外。 在 Node.js 中,情况有所不同。 顶层作用域不是全局作用域;Node.js 模块中的 var something 将是该模块的局部变量,无论它是 CommonJS 模块 还是 ECMAScript 模块

Headers

[历史记录]

版本变更
v21.0.0不再是实验性的。
v18.0.0不再需要 --experimental-fetch 命令行标志。
v17.5.0, v16.15.0添加于:v17.5.0, v16.15.0

[稳定: 2 - 稳定]

稳定: 2 稳定性: 2 - 稳定

一个浏览器兼容的 <Headers> 实现。

localStorage

添加于: v22.4.0

[稳定: 1 - 实验性]

稳定: 1 稳定性: 1.0 - 早期开发。

一个浏览器兼容的 localStorage 实现。 数据以未加密的形式存储在 --localstorage-file 命令行标志指定的文件中。 可以存储的最大数据量为 10 MB。 不支持在 Web Storage API 之外修改此数据。 使用 --experimental-webstorage 命令行标志启用此 API。 在服务器环境中使用时,localStorage 数据不是按用户或按请求存储的,而是在所有用户和请求之间共享的。

MessageChannel

Added in: v15.0.0

MessageChannel 类。 更多详情请参见 MessageChannel

MessageEvent

Added in: v15.0.0

MessageEvent 类。 更多详情请参见 MessageEvent

MessagePort

Added in: v15.0.0

MessagePort 类。 更多详情请参见 MessagePort

module

这个变量看起来像是全局的,但实际上不是。 更多详情请参见 module

Added in: v21.0.0

[Stable: 1 - Experimental]

Stable: 1 稳定性: 1.1 - 活跃开发中。 使用 --no-experimental-global-navigator CLI 标志禁用此 API。

Navigator API 的部分实现。

Added in: v21.0.0

[Stable: 1 - Experimental]

Stable: 1 稳定性: 1.1 - 活跃开发中。 使用 --no-experimental-global-navigator CLI 标志禁用此 API。

window.navigator 的部分实现。

Added in: v21.0.0

navigator.hardwareConcurrency 只读属性返回当前 Node.js 实例可用的逻辑处理器数量。

js
console.log(`此进程运行在 ${navigator.hardwareConcurrency} 个逻辑处理器上`);

Added in: v21.2.0

navigator.language 只读属性返回一个字符串,表示 Node.js 实例的首选语言。 该语言将由 Node.js 在运行时使用的 ICU 库根据操作系统的默认语言确定。

该值表示在 RFC 5646 中定义的语言版本。

在没有 ICU 的构建中的回退值为 'en-US'

js
console.log(`Node.js 实例的首选语言具有标签 '${navigator.language}'`);

添加于: v21.2.0

  • {Array

navigator.languages 只读属性返回一个字符串数组,表示 Node.js 实例的首选语言。 默认情况下,navigator.languages 仅包含 navigator.language 的值,该值将由 Node.js 在运行时使用的 ICU 库根据操作系统的默认语言确定。

在没有 ICU 的构建上的回退值为 ['en-US']

js
console.log(`首选语言为 '${navigator.languages}'`);

添加于: v21.2.0

navigator.platform 只读属性返回一个字符串,用于标识 Node.js 实例正在运行的平台。

js
console.log(`此进程运行在 ${navigator.platform}`);

添加于: v21.1.0

navigator.userAgent 只读属性返回由运行时名称和主版本号组成的用户代理。

js
console.log(`用户代理是 ${navigator.userAgent}`); // 输出 "Node.js/21"

PerformanceEntry

添加于: v19.0.0

PerformanceEntry 类。 更多详情请参阅 PerformanceEntry

PerformanceMark

添加于: v19.0.0

PerformanceMark 类。 更多详情请参阅 PerformanceMark

PerformanceMeasure

添加于: v19.0.0

PerformanceMeasure 类。 更多详情请参阅 PerformanceMeasure

PerformanceObserver

添加于: v19.0.0

PerformanceObserver 类。 更多详情请参阅 PerformanceObserver

PerformanceObserverEntryList

添加于: v19.0.0

PerformanceObserverEntryList 类。 更多详情请参阅 PerformanceObserverEntryList

PerformanceResourceTiming

添加于: v19.0.0

PerformanceResourceTiming 类。 更多详情请参阅 PerformanceResourceTiming

performance

添加于: v16.0.0

perf_hooks.performance 对象。

process

添加于: v0.1.7

进程对象。 参见 process 对象 章节。

queueMicrotask(callback)

添加于: v11.0.0

queueMicrotask() 方法将一个微任务排队以调用 callback。 如果 callback 抛出异常,则将发出 process 对象'uncaughtException' 事件。

微任务队列由 V8 管理,并且可以使用与由 Node.js 管理的 process.nextTick() 队列类似的方式来使用。 在 Node.js 事件循环的每一轮中,始终在微任务队列之前处理 process.nextTick() 队列。

js
// 在这里,`queueMicrotask()` 用于确保“load”事件始终
// 异步发出,因此具有一致性。 使用
// 这里的 `process.nextTick()` 将导致“load”事件始终在发出
// 在任何其他 promise 作业之前。

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

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

类: ReadableByteStreamController

添加于: v18.0.0

[稳定度: 1 - 实验性]

稳定度: 1 稳定度: 1 - 实验性。

ReadableByteStreamController 的浏览器兼容实现。

类: ReadableStream

添加于: v18.0.0

[Stable: 1 - Experimental]

Stable: 1 稳定性: 1 - 实验性的。

ReadableStream 的浏览器兼容实现。

类: ReadableStreamBYOBReader

添加于: v18.0.0

[Stable: 1 - Experimental]

Stable: 1 稳定性: 1 - 实验性的。

ReadableStreamBYOBReader 的浏览器兼容实现。

类: ReadableStreamBYOBRequest

添加于: v18.0.0

[Stable: 1 - Experimental]

Stable: 1 稳定性: 1 - 实验性的。

ReadableStreamBYOBRequest 的浏览器兼容实现。

类: ReadableStreamDefaultController

添加于: v18.0.0

[Stable: 1 - Experimental]

Stable: 1 稳定性: 1 - 实验性的。

ReadableStreamDefaultController 的浏览器兼容实现。

类: ReadableStreamDefaultReader

添加于: v18.0.0

[Stable: 1 - Experimental]

Stable: 1 稳定性: 1 - 实验性的。

ReadableStreamDefaultReader 的浏览器兼容实现。

require()

此变量可能看起来是全局的,但实际上不是。请参阅 require()

Response

[历史]

版本变更
v21.0.0不再是实验性的。
v18.0.0不再需要 --experimental-fetch 命令行标志。
v17.5.0, v16.15.0添加于: v17.5.0, v16.15.0

[Stable: 2 - Stable]

Stable: 2 稳定性: 2 - 稳定的

<Response> 的浏览器兼容实现。

Request

[历史记录]

版本变更
v21.0.0不再是实验性的。
v18.0.0不再需要 --experimental-fetch 命令行标志。
v17.5.0, v16.15.0添加于: v17.5.0, v16.15.0

[稳定: 2 - 稳定]

稳定: 2 稳定性: 2 - 稳定

与浏览器兼容的<Request>实现。

sessionStorage

添加于: v22.4.0

[稳定: 1 - 实验性]

稳定: 1 稳定性: 1 - 早期开发。

与浏览器兼容的sessionStorage实现。 数据存储在内存中,存储配额为 10 MB。 sessionStorage 数据仅在当前运行的进程中持久存在,并且不在工作线程之间共享。

setImmediate(callback[, ...args])

添加于: v0.9.1

setImmediate定时器章节中描述。

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

添加于: v0.0.1

setInterval定时器章节中描述。

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

添加于: v0.0.1

setTimeout定时器章节中描述。

Class: Storage

添加于: v22.4.0

[稳定: 1 - 实验性]

稳定: 1 稳定性: 1 - 早期开发。

与浏览器兼容的Storage实现。 使用--experimental-webstorage 命令行标志启用此 API。

structuredClone(value[, options])

添加于: v17.0.0

WHATWG structuredClone 方法。

SubtleCrypto

[历史记录]

版本变更
v19.0.0不再受 --experimental-global-webcrypto CLI 标志控制。
v17.6.0, v16.15.0添加于:v17.6.0, v16.15.0

[稳定: 2 - 稳定]

稳定: 2 稳定性: 2 - 稳定。

<SubtleCrypto> 的一个浏览器兼容实现。只有在编译 Node.js 二进制文件时包含了对 node:crypto 模块的支持,这个全局变量才可用。

DOMException

添加于: v17.0.0

WHATWG DOMException 类。 更多详情请参阅 DOMException

TextDecoder

添加于: v11.0.0

WHATWG TextDecoder 类。 请参阅 TextDecoder 部分。

类: TextDecoderStream

添加于: v18.0.0

[稳定: 1 - 实验]

稳定: 1 稳定性: 1 - 实验。

TextDecoderStream 的一个浏览器兼容实现。

TextEncoder

添加于: v11.0.0

WHATWG TextEncoder 类。 请参阅 TextEncoder 部分。

类: TextEncoderStream

添加于: v18.0.0

[稳定: 1 - 实验]

稳定: 1 稳定性: 1 - 实验。

TextEncoderStream 的一个浏览器兼容实现。

类: TransformStream

添加于: v18.0.0

[稳定: 1 - 实验]

稳定: 1 稳定性: 1 - 实验。

TransformStream 的一个浏览器兼容实现。

类: TransformStreamDefaultController

添加于: v18.0.0

[稳定: 1 - 实验]

稳定: 1 稳定性: 1 - 实验。

TransformStreamDefaultController 的一个浏览器兼容实现。

URL

Added in: v10.0.0

WHATWG URL 类。 请参见 URL 部分。

URLSearchParams

Added in: v10.0.0

WHATWG URLSearchParams 类。 请参见 URLSearchParams 部分。

WebAssembly

Added in: v8.0.0

该对象充当所有 W3C WebAssembly 相关功能的命名空间。 有关用法和兼容性,请参见 Mozilla 开发者网络

WebSocket

[历史]

版本变更
v22.4.0不再是实验性的。
v22.0.0不再位于 --experimental-websocket 命令行标志之后。
v21.0.0, v20.10.0Added in: v21.0.0, v20.10.0

[稳定: 2 - 稳定]

稳定: 2 稳定性: 2 - 稳定。

与浏览器兼容的 WebSocket 实现。 使用 --no-experimental-websocket 命令行标志禁用此 API。

类: WritableStream

Added in: v18.0.0

[稳定: 1 - 实验]

稳定: 1 稳定性: 1 - 实验。

与浏览器兼容的 WritableStream 实现。

类: WritableStreamDefaultController

Added in: v18.0.0

[稳定: 1 - 实验]

稳定: 1 稳定性: 1 - 实验。

与浏览器兼容的 WritableStreamDefaultController 实现。

类: WritableStreamDefaultWriter

Added in: v18.0.0

[稳定: 1 - 实验]

稳定: 1 稳定性: 1 - 实验。

与浏览器兼容的 WritableStreamDefaultWriter 实现。