全局对象#

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

以下变量可能看起来是全局的,但实际上不是。它们只存在于 CommonJS 模块 的范围内

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

类:AbortController#

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

const ac = new AbortController();

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

ac.abort();

console.log(ac.signal.aborted);  // Prints true 

abortController.abort([reason])#

  • reason <any> 一个可选原因,可以在 AbortSignalreason 属性中检索。

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

abortController.signal#

类:AbortSignal#

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

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

返回一个新的已中止的 AbortSignal

静态方法:AbortSignal.timeout(delay)#
  • delay <number> 触发 AbortSignal 之前等待的毫秒数。

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

静态方法:AbortSignal.any(signals)#
  • signals <AbortSignal[]> 用于组合新的 AbortSignalAbortSignal

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

事件:'abort'#

当调用 abortController.abort() 方法时,将发出 'abort' 事件。回调函数将被调用,并带有一个包含单个 type 属性的对象参数,该属性设置为 'abort'

const ac = new AbortController();

// Use either the onabort property...
ac.signal.onabort = () => console.log('aborted!');

// Or the EventTarget API...
ac.signal.addEventListener('abort', (event) => {
  console.log(event.type);  // Prints 'abort'
}, { once: true });

ac.abort(); 

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

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

abortSignal.aborted#
  • 类型:<boolean>AbortController 被中止后为真。
abortSignal.onabort#

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

abortSignal.reason#

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

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

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

类:Blob#

参见 <Blob>.

类:Buffer#

用于处理二进制数据。参见 缓冲区部分.

类:ByteLengthQueuingStrategy#

稳定性:1 - 实验性。

ByteLengthQueuingStrategy 的浏览器兼容实现,参见 ByteLengthQueuingStrategy.

__dirname#

此变量可能看起来是全局的,但实际上不是。参见 __dirname.

__filename#

此变量可能看起来是全局的,但实际上不是。参见 __filename.

atob(data)#

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

buffer.atob() 的全局别名,参见 buffer.atob().

BroadcastChannel#

参见 <BroadcastChannel>.

btoa(data)#

稳定性:3 - 遗留。请使用 buf.toString('base64') 代替。

buffer.btoa() 的全局别名,参见 buffer.btoa().

clearImmediate(immediateObject)#

clearImmediate计时器 部分有描述。

clearInterval(intervalObject)#

clearInterval计时器 部分有描述。

clearTimeout(timeoutObject)#

clearTimeouttimers 部分有描述。

类: CompressionStream#

稳定性:1 - 实验性。

一个与浏览器兼容的 CompressionStream 实现。

console#

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

类: CountQueuingStrategy#

稳定性:1 - 实验性。

一个与浏览器兼容的 CountQueuingStrategy 实现。

Crypto#

稳定性: 1 - 实验性。使用 --no-experimental-global-webcrypto CLI 标志禁用此 API。

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

crypto#

稳定性: 1 - 实验性。使用 --no-experimental-global-webcrypto CLI 标志禁用此 API。

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

CryptoKey#

稳定性: 1 - 实验性。使用 --no-experimental-global-webcrypto CLI 标志禁用此 API。

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

CustomEvent#

稳定性: 1 - 实验性。使用 --no-experimental-global-customevent CLI 标志禁用此 API。

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

类: DecompressionStream#

稳定性:1 - 实验性。

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

Event#

一个与浏览器兼容的 Event 类实现。有关更多详细信息,请参阅 EventTargetEvent API

EventTarget#

一个与浏览器兼容的 EventTarget 类实现。有关更多详细信息,请参阅 EventTargetEvent API

exports#

此变量可能看起来是全局的,但实际上并非如此。请参阅 exports

fetch#

稳定性:2 - 稳定

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

类:File#

请参阅 <File>

FormData#

稳定性:2 - 稳定

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

global#

稳定性:3 - 遗留。请改用 globalThis

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

Headers#

稳定性:2 - 稳定

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

MessageChannel#

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

MessageEvent#

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

MessagePort#

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

module#

此变量可能看起来是全局的,但实际上并非如此。请参阅 module

Navigator#

稳定性:1.1 - 积极开发中。使用 --no-experimental-global-navigator CLI 标志禁用此 API。

Navigator API 的部分实现。

navigator#

稳定性:1.1 - 积极开发中。使用 --no-experimental-global-navigator CLI 标志禁用此 API。

window.navigator 的部分实现。

navigator.hardwareConcurrency#

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

console.log(`This process is running on ${navigator.hardwareConcurrency} logical processors`); 

navigator.language#

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

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

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

console.log(`The preferred language of the Node.js instance has the tag '${navigator.language}'`); 

navigator.languages#

  • {Array}

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

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

console.log(`The preferred languages are '${navigator.languages}'`); 

navigator.platform#

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

console.log(`This process is running on ${navigator.platform}`); 

navigator.userAgent#

navigator.userAgent 只读属性返回用户代理,包含运行时名称和主要版本号。

console.log(`The user-agent is ${navigator.userAgent}`); // Prints "Node.js/21" 

PerformanceEntry#

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

PerformanceMark#

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

PerformanceMeasure#

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

PerformanceObserver#

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

PerformanceObserverEntryList#

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

PerformanceResourceTiming#

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

performance#

perf_hooks.performance 对象。

process#

进程对象。请参阅 process 对象 部分。

queueMicrotask(callback)#

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

微任务队列由 V8 管理,其使用方式类似于由 Node.js 管理的 process.nextTick() 队列。在 Node.js 事件循环的每次循环中,process.nextTick() 队列始终在微任务队列之前处理。

// Here, `queueMicrotask()` is used to ensure the 'load' event is always
// emitted asynchronously, and therefore consistently. Using
// `process.nextTick()` here would result in the 'load' event always emitting
// before any other promise jobs.

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#

稳定性:1 - 实验性。

一个与浏览器兼容的 ReadableByteStreamController 实现。

类:ReadableStream#

稳定性:1 - 实验性。

一个与浏览器兼容的 ReadableStream 实现。

类:ReadableStreamBYOBReader#

稳定性:1 - 实验性。

一个与浏览器兼容的 ReadableStreamBYOBReader 实现。

类:ReadableStreamBYOBRequest#

稳定性:1 - 实验性。

一个与浏览器兼容的 ReadableStreamBYOBRequest 实现。

类:ReadableStreamDefaultController#

稳定性:1 - 实验性。

一个与浏览器兼容的 ReadableStreamDefaultController 实现。

类:ReadableStreamDefaultReader#

稳定性:1 - 实验性。

一个与浏览器兼容的 ReadableStreamDefaultReader 实现。

require()#

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

Response#

稳定性:2 - 稳定

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

Request#

稳定性:2 - 稳定

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

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

setImmediate计时器 部分有描述。

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

setInterval计时器 部分有描述。

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

setTimeout计时器 部分有描述。

structuredClone(value[, options])#

WHATWG structuredClone 方法。

SubtleCrypto#

稳定性: 1 - 实验性。使用 --no-experimental-global-webcrypto CLI 标志禁用此 API。

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

DOMException#

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

TextDecoder#

WHATWG TextDecoder 类。请参阅 TextDecoder 部分。

类:TextDecoderStream#

稳定性:1 - 实验性。

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

TextEncoder#

WHATWG TextEncoder 类。请参阅 TextEncoder 部分。

类:TextEncoderStream#

稳定性:1 - 实验性。

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

类: TransformStream#

稳定性:1 - 实验性。

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

类: TransformStreamDefaultController#

稳定性:1 - 实验性。

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

URL#

WHATWG URL 类。请参阅 URL 部分。

URLSearchParams#

WHATWG URLSearchParams 类。请参阅 URLSearchParams 部分。

WebAssembly#

作为所有 W3C WebAssembly 相关功能命名空间的对象。请参阅 Mozilla 开发者网络 以了解用法和兼容性。

WebSocket#

稳定性:1 - 实验性。

一个与浏览器兼容的 WebSocket 实现。使用 --experimental-websocket CLI 标志启用此 API。

类: WritableStream#

稳定性:1 - 实验性。

一个与浏览器兼容的 WritableStream 实现。

类: WritableStreamDefaultController#

稳定性:1 - 实验性。

一个与浏览器兼容的 WritableStreamDefaultController 实现。

类: WritableStreamDefaultWriter#

稳定性:1 - 实验性。

一个与浏览器兼容的 WritableStreamDefaultWriter 实现。