全局对象#

全局对象#
这些对象在所有模块中都可用。
以下变量可能看起来是全局的,但实际上不是。它们仅存在于 CommonJS 模块的作用域中
__dirname
__filename
exports
module
require()
此处列出的对象是 Node.js 特有的。还有一些 内置对象是 JavaScript 语言本身的一部分,也可以全局访问。
类:AbortController#
历史
版本变更
v15.4.0
不再是实验性的。
v15.0.0, v14.17.0
添加于:v15.0.0, v14.17.0
稳定性:2 - 稳定
一个实用工具类,用于在选定的基于 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 copy
abortController.abort([reason])#
历史
版本变更
v17.2.0, v16.14.0
添加了新的可选 reason 参数。
v15.0.0, v14.17.0
添加于:v15.0.0, v14.17.0
reason
触发中止信号,导致 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
reason:
返回:
返回一个新的已中止的 AbortSignal。
静态方法:AbortSignal.timeout(delay)#
添加于:v17.3.0, v16.14.0
delay
返回一个新的 AbortSignal,它将在 delay 毫秒后中止。
静态方法:AbortSignal.any(signals)#
添加于:v20.3.0, v18.17.0
signals
返回一个新的 AbortSignal,如果提供的任何信号被中止,它将被中止。 它的 abortSignal.reason 将设置为导致其中止的 signals 中的任何一个。
事件:'abort'#
添加于:v15.0.0, v14.17.0
当调用 abortController.abort() 方法时,会发出 'abort' 事件。 使用设置为 'abort' 的单个 type 属性调用回调函数。
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(); copy
与 AbortSignal 关联的 AbortController 将仅触发一次 'abort' 事件。 我们建议代码在添加 'abort' 事件侦听器之前检查 abortSignal.aborted 属性是否为 false。
附加到 AbortSignal 的任何事件侦听器都应使用 { once: true } 选项(或者,如果使用 EventEmitter API 附加侦听器,则使用 once() 方法)以确保在处理 'abort' 事件后立即删除事件侦听器。 否则可能会导致内存泄漏。
abortSignal.aborted#
添加于:v15.0.0, v14.17.0
类型:
abortSignal.onabort#
添加于:v15.0.0, v14.17.0
类型:
用户代码可以设置一个可选的回调函数,以便在调用 abortController.abort() 函数时收到通知。
abortSignal.reason#
添加于:v17.2.0, v16.14.0
类型:
触发 AbortSignal 时指定的可选原因。
const ac = new AbortController();
ac.abort(new Error('boom!'));
console.log(ac.signal.reason); // Error: boom! copy
abortSignal.throwIfAborted()#
添加于:v17.3.0, v16.17.0
如果 abortSignal.aborted 是 true,则抛出 abortSignal.reason。
类:Blob#
添加于:v18.0.0
稳定性:2 - 稳定
参阅
类:Buffer#
添加于:v0.1.103
稳定性:2 - 稳定
用于处理二进制数据。 请参阅 缓冲区部分。
类:ByteLengthQueuingStrategy#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
与浏览器兼容的 ByteLengthQueuingStrategy 实现。
__dirname#
此变量可能看起来是全局的,但实际上不是。 请参阅 __dirname。
__filename#
此变量可能看起来是全局的,但实际上不是。 请参阅 __filename。
atob(data)#
添加于:v16.0.0
稳定性:3 - 遗留。 请改用 Buffer.from(data, 'base64')。
buffer.atob() 的全局别名。
BroadcastChannel#
添加于:v18.0.0
稳定性:2 - 稳定
参见
btoa(data)#
添加于:v16.0.0
稳定性: 3 - 已过时。 请改用 buf.toString('base64')。
buffer.btoa() 的全局别名。
clearImmediate(immediateObject)#
新增于: v0.9.1
稳定性:2 - 稳定
clearImmediate 在 计时器 部分中描述。
clearInterval(intervalObject)#
新增于: v0.0.1
稳定性:2 - 稳定
clearInterval 在 计时器 部分中描述。
clearTimeout(timeoutObject)#
新增于: v0.0.1
稳定性:2 - 稳定
clearTimeout 在 计时器 部分中描述。
CloseEvent#
新增于: v23.0.0
稳定性:2 - 稳定
CloseEvent 类。 更多详细信息,请参阅 CloseEvent。
CloseEvent 的浏览器兼容实现。 使用 --no-experimental-websocket CLI 标志禁用此 API。
类: CompressionStream#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
CompressionStream 的浏览器兼容实现。
console#
新增于: v0.1.100
稳定性:2 - 稳定
用于打印到 stdout 和 stderr。 参见 console 部分。
类: CountQueuingStrategy#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
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 - 稳定
crypto#
历史
版本变更
v23.0.0
不再是实验性的。
v19.0.0
不再需要 --experimental-global-webcrypto CLI 标志。
v17.6.0, v16.15.0
新增于: v17.6.0, v16.15.0
稳定性: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 - 稳定
CustomEvent#
历史
版本变更
v23.0.0
不再是实验性的。
v22.1.0, v20.13.0
CustomEvent 现在是稳定的。
v19.0.0
不再需要 --experimental-global-customevent CLI 标志。
v18.7.0, v16.17.0
新增于: v18.7.0, v16.17.0
稳定性:2 - 稳定
CustomEvent Web API 的浏览器兼容实现。
类: DecompressionStream#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
DecompressionStream 的浏览器兼容实现。
Event#
历史
版本变更
v15.4.0
不再是实验性的。
v15.0.0
新增于: v15.0.0
稳定性:2 - 稳定
Event 类的浏览器兼容实现。 更多详细信息,请参阅 EventTarget 和 Event API。
EventSource#
新增于: v22.3.0, v20.18.0
稳定性: 1 - 实验性的。 使用 --experimental-eventsource CLI 标志启用此 API。
EventSource 类的浏览器兼容实现。
EventTarget#
历史
版本变更
v15.4.0
不再是实验性的。
v15.0.0
新增于: v15.0.0
稳定性:2 - 稳定
EventTarget 类的浏览器兼容实现。 更多详细信息,请参阅 EventTarget 和 Event 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
稳定性:2 - 稳定
fetch() 函数的浏览器兼容实现。
const res = await fetch('https://node.org.cn/api/documentation.json');
if (res.ok) {
const data = await res.json();
console.log(data);
} copy
该实现基于 undici,这是一个为 Node.js 从头开始编写的 HTTP/1.1 客户端。 您可以通过读取 process.versions.undici 属性来确定您的 Node.js 进程中捆绑的 undici 版本。
自定义分发器#
您可以使用自定义分发器来分派请求,将其传递到 fetch 的 options 对象中。 该分发器必须与 undici 的 Dispatcher 类兼容。
fetch(url, { dispatcher: new MyAgent() }); copy
可以通过安装 undici 并使用 setGlobalDispatcher() 方法来更改 Node.js 中的全局分发器。 调用此方法将影响 undici 和 Node.js。
import { setGlobalDispatcher } from 'undici';
setGlobalDispatcher(new MyAgent()); copy
相关类#
以下全局变量可与 fetch 一起使用
FormData
Headers
Request
Response.
类: File#
新增于: v20.0.0
稳定性:2 - 稳定
参见
类 FormData#
历史
版本变更
v21.0.0
不再是实验性的。
v18.0.0
不再需要 --experimental-fetch CLI 标志。
v17.6.0, v16.15.0
新增于: v17.6.0, v16.15.0
稳定性:2 - 稳定
global#
新增于: v0.1.27
稳定性: 3 - 已过时。 请改用 globalThis。
在浏览器中,顶层作用域传统上是全局作用域。 这意味着 var something 将定义一个新的全局变量,但 ECMAScript 模块除外。 在 Node.js 中,情况有所不同。 顶层作用域不是全局作用域; Node.js 模块中的 var something 将是该模块本地的,无论它是 CommonJS 模块还是 ECMAScript 模块。
类 Headers#
历史
版本变更
v21.0.0
不再是实验性的。
v18.0.0
不再需要 --experimental-fetch CLI 标志。
v17.5.0, v16.15.0
新增于: v17.5.0, v16.15.0
稳定性:2 - 稳定
localStorage#
新增于: v22.4.0
稳定性: 1.0 - 早期开发。
localStorage 的浏览器兼容实现。 数据以未加密的方式存储在 --localstorage-file CLI 标志指定的文件中。 可以存储的最大数据量为 10 MB。 不支持在 Web Storage API 之外对该数据进行任何修改。 使用 --experimental-webstorage CLI 标志启用此 API。 在服务器上下文中使用时,localStorage 数据不按用户或按请求存储,而是在所有用户和请求之间共享。
MessageChannel#
新增于: v15.0.0
稳定性:2 - 稳定
MessageChannel 类。 更多详细信息,请参阅 MessageChannel。
MessageEvent#
新增于: v15.0.0
稳定性:2 - 稳定
MessageEvent 类。 更多详细信息,请参阅 MessageEvent。
MessagePort#
新增于: v15.0.0
稳定性:2 - 稳定
MessagePort 类。 更多详细信息,请参阅 MessagePort。
module#
此变量可能看起来是全局的,但不是。 参见 module。
Navigator#
新增于: v21.0.0
稳定性: 1.1 - 积极开发。 使用 --no-experimental-global-navigator CLI 标志禁用此 API。
Navigator API 的部分实现。
navigator#
新增于: v21.0.0
稳定性: 1.1 - 积极开发。 使用 --no-experimental-global-navigator CLI 标志禁用此 API。
window.navigator 的部分实现。
navigator.hardwareConcurrency#
新增于: v21.0.0
navigator.hardwareConcurrency 只读属性返回当前 Node.js 实例可用的逻辑处理器数量。
console.log(`This process is running on ${navigator.hardwareConcurrency} logical processors`); copy
navigator.language#
新增于: v21.2.0
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}'`); copy
navigator.languages#
新增于: v21.2.0
{Array}
navigator.languages 只读属性返回一个字符串数组,表示 Node.js 实例的首选语言。 默认情况下,navigator.languages 仅包含 navigator.language 的值,该值将由 Node.js 在运行时使用的 ICU 库根据操作系统的默认语言确定。
在没有 ICU 的构建中的回退值为 ['en-US']。
console.log(`The preferred languages are '${navigator.languages}'`); copy
navigator.platform#
新增于: v21.2.0
navigator.platform 只读属性返回一个字符串,用于标识 Node.js 实例正在运行的平台。
console.log(`This process is running on ${navigator.platform}`); copy
navigator.userAgent#
添加于: v21.1.0
navigator.userAgent 只读属性返回一个用户代理字符串,包含运行时名称和主要版本号。
console.log(`The user-agent is ${navigator.userAgent}`); // Prints "Node.js/21" copy
PerformanceEntry#
添加于: v19.0.0
稳定性:2 - 稳定
PerformanceEntry 类。 更多详情参见 PerformanceEntry。
PerformanceMark#
添加于: v19.0.0
稳定性:2 - 稳定
PerformanceMark 类。 更多详情参见 PerformanceMark。
PerformanceMeasure#
添加于: v19.0.0
稳定性:2 - 稳定
PerformanceMeasure 类。 更多详情参见 PerformanceMeasure。
PerformanceObserver#
添加于: v19.0.0
稳定性:2 - 稳定
PerformanceObserver 类。 更多详情参见 PerformanceObserver。
PerformanceObserverEntryList#
添加于: v19.0.0
稳定性:2 - 稳定
PerformanceObserverEntryList 类。 更多详情参见 PerformanceObserverEntryList。
PerformanceResourceTiming#
添加于: v19.0.0
稳定性:2 - 稳定
PerformanceResourceTiming 类。 更多详情参见 PerformanceResourceTiming。
performance#
添加于:v16.0.0
稳定性:2 - 稳定
perf_hooks.performance 对象。
process#
添加于: v0.1.7
稳定性:2 - 稳定
process 对象。 参见 process 对象 部分。
queueMicrotask(callback)#
添加于: v11.0.0
稳定性:2 - 稳定
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);
}; copy
类: ReadableByteStreamController#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
ReadableByteStreamController 的浏览器兼容实现。
类: ReadableStream#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
ReadableStream 的浏览器兼容实现。
类: ReadableStreamBYOBReader#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
ReadableStreamBYOBReader 的浏览器兼容实现。
类: ReadableStreamBYOBRequest#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
ReadableStreamBYOBRequest 的浏览器兼容实现。
类: ReadableStreamDefaultController#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
ReadableStreamDefaultController 的浏览器兼容实现。
类: ReadableStreamDefaultReader#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
ReadableStreamDefaultReader 的浏览器兼容实现。
require()#
这个变量看起来像是全局的,但实际上不是。 参见 require()。
Response#
历史
版本变更
v21.0.0
不再是实验性的。
v18.0.0
不再需要 --experimental-fetch CLI 标志。
v17.5.0, v16.15.0
新增于: v17.5.0, v16.15.0
稳定性:2 - 稳定
Request#
历史
版本变更
v21.0.0
不再是实验性的。
v18.0.0
不再需要 --experimental-fetch CLI 标志。
v17.5.0, v16.15.0
新增于: v17.5.0, v16.15.0
稳定性:2 - 稳定
sessionStorage#
新增于: v22.4.0
稳定性: 1.0 - 早期开发。
sessionStorage 的浏览器兼容实现。 数据存储在内存中,存储配额为 10 MB。 sessionStorage 数据仅在当前运行的进程中持续存在,不会在工作线程之间共享。
setImmediate(callback[, ...args])#
新增于: v0.9.1
稳定性:2 - 稳定
setImmediate 在 计时器 部分中描述。
setInterval(callback, delay[, ...args])#
新增于: v0.0.1
稳定性:2 - 稳定
setInterval 在 计时器 部分中描述。
setTimeout(callback, delay[, ...args])#
新增于: v0.0.1
稳定性:2 - 稳定
setTimeout 在 计时器 部分中描述。
类: Storage#
新增于: v22.4.0
稳定性: 1.0 - 早期开发。
Storage 的浏览器兼容实现。 使用 --experimental-webstorage 命令行标志启用此 API。
structuredClone(value[, options])#
添加于: v17.0.0
稳定性:2 - 稳定
WHATWG structuredClone 方法。
SubtleCrypto#
历史
版本变更
v19.0.0
不再需要 --experimental-global-webcrypto CLI 标志。
v17.6.0, v16.15.0
新增于: v17.6.0, v16.15.0
稳定性:2 - 稳定
DOMException#
添加于: v17.0.0
稳定性:2 - 稳定
WHATWG DOMException 类。 更多详情参见 DOMException。
TextDecoder#
添加于: v11.0.0
稳定性:2 - 稳定
WHATWG TextDecoder 类。 参见 TextDecoder 部分。
类: TextDecoderStream#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
TextDecoderStream 的浏览器兼容实现。
TextEncoder#
添加于: v11.0.0
稳定性:2 - 稳定
WHATWG TextEncoder 类。 参见 TextEncoder 部分。
类: TextEncoderStream#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
TextEncoderStream 的浏览器兼容实现。
类: TransformStream#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
TransformStream 的浏览器兼容实现。
类: TransformStreamDefaultController#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
TransformStreamDefaultController 的浏览器兼容实现。
URL#
添加于: v10.0.0
稳定性:2 - 稳定
WHATWG URL 类。 参见 URL 部分。
URLPattern#
添加于: v24.0.0
稳定性: 1 - 实验性的
WHATWG URLPattern 类。 参见 URLPattern 部分。
URLSearchParams#
添加于: v10.0.0
稳定性:2 - 稳定
WHATWG URLSearchParams 类。 参见 URLSearchParams 部分。
WebAssembly#
添加于: v8.0.0
稳定性:2 - 稳定
用作所有 W3C WebAssembly 相关功能的命名空间的对象。 关于用法和兼容性,参见 Mozilla 开发者网络。
WebSocket#
历史
版本变更
v22.4.0
不再是实验性的。
v22.0.0
不再位于 --experimental-websocket 命令行标志之后。
v21.0.0, v20.10.0
添加于: v21.0.0, v20.10.0
稳定性:2 - 稳定
WebSocket 的浏览器兼容实现。 使用 --no-experimental-websocket 命令行标志禁用此 API。
类: WritableStream#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
WritableStream 的浏览器兼容实现。
类: WritableStreamDefaultController#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
WritableStreamDefaultController 的浏览器兼容实现。
类: WritableStreamDefaultWriter#
历史
版本变更
v23.11.0, v22.15.0
将 API 标记为稳定。
v18.0.0
添加于:v18.0.0
WritableStreamDefaultWriter 的浏览器兼容实现。