Spec-Zone.ru › Node.js 22 LTS

Глобальные объекты

Стабильность: 2 - Стабильный

Эти объекты доступны во всех модулях.

Следующие переменные могут показаться глобальными, но таковыми не являются. Они существуют только в области видимости модулей 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

Вспомогательный класс, используемый для отправки сигнала отмены в выбранных API на основе Promise. API основан на веб-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 <any> Необязательная причина, которую можно получить через свойство reason объекта AbortSignal.

Активирует сигнал отмены, в результате чего abortController.signal генерирует событие 'abort'.

abortController.signal

Добавлено в версии: v15.0.0, v14.17.0
  • Тип: <AbortSignal>

Класс: AbortSignal

Добавлено в версии: v15.0.0, v14.17.0
  • Расширяет: <EventTarget>

Объект AbortSignal используется для уведомления наблюдателей о вызове метода abortController.abort().

Статический метод: AbortSignal.abort([reason])
История
Версия Изменения
v17.2.0, v16.14.0

Добавлен новый необязательный аргумент reason.

v15.12.0, v14.17.0

Добавлено в версии: v15.12.0, v14.17.0

  • reason <any>
  • Возвращает: <AbortSignal>

Возвращает новый уже прерванный объект 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[]> Сигналы AbortSignal, из которых составляется новый объект AbortSignal.

Возвращает новый объект AbortSignal, который будет прерван, если будет прерван любой из переданных сигналов. Его abortSignal.reason будет установлен в значение того сигнала signals, который вызвал прерывание.

Событие: 'abort'
Добавлено в версии: v15.0.0, v14.17.0

Событие 'abort' генерируется при вызове метода abortController.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(); copy

Объект AbortController, с которым связан AbortSignal, генерирует событие 'abort' только один раз. Рекомендуется проверять, что атрибут abortSignal.aborted имеет значение false, прежде чем добавлять обработчик события 'abort'.

Для всех обработчиков событий, добавленных к объекту AbortSignal, следует использовать параметр { once: true } (или, если для добавления обработчика используются API EventEmitter, метод once()), чтобы гарантировать удаление обработчика сразу после обработки события 'abort'. В противном случае возможны утечки памяти.

abortSignal.aborted
Добавлено в версии: v15.0.0, v14.17.0
  • Тип: <boolean> Равно true после прерывания объекта AbortController.
abortSignal.onabort
Добавлено в версии: v15.0.0, v14.17.0
  • Тип: <Function>

Необязательная функция обратного вызова, которую пользовательский код может задать для получения уведомления о вызове функции abortController.abort().

abortSignal.reason
Добавлено в версии: v17.2.0, v16.14.0
  • Тип: <any>

Необязательная причина, указанная при активации 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

См. <Blob>.

Класс: Buffer

Добавлено в версии: v0.1.103
  • Тип: <Function>

Используется для обработки двоичных данных. См. раздел о буферах.

Класс: ByteLengthQueuingStrategy

История
Версия Изменения
v22.15.0

API объявлен стабильным.

v18.0.0

Добавлено в версии: v18.0.0

Реализация ByteLengthQueuingStrategy, совместимая с браузерами.

__dirname

Эта переменная может показаться глобальной, но таковой не является. См. __dirname.

__filename

Эта переменная может показаться глобальной, но таковой не является. См. __filename.

atob(data)

Добавлено в версии: v16.0.0
Стабильность: 3 - Устаревший API. Вместо него используйте Buffer.from(data, 'base64').

Глобальный псевдоним для buffer.atob().

Класс: BroadcastChannel

Добавлено в версии: v18.0.0

См. <BroadcastChannel>.

btoa(data)

Добавлено в версии: v16.0.0
Стабильность: 3 - Устаревший API. Вместо него используйте buf.toString('base64').

Глобальный псевдоним для buffer.btoa().

clearImmediate(immediateObject)

Добавлено в версии: v0.9.1

clearImmediate описан в разделе таймеров.

clearInterval(intervalObject)

Добавлено в версии: v0.0.1

clearInterval описан в разделе таймеров.

clearTimeout(timeoutObject)

Добавлено в версии: v0.0.1

clearTimeout описан в разделе таймеров.

Класс: CompressionStream

История
Версия Изменения
v22.20.0

Теперь format принимает значение brotli.

v22.15.0

API объявлен стабильным.

v18.0.0

Добавлено в версии: v18.0.0

Реализация CompressionStream, совместимая с браузерами.

console

Добавлено в версии: v0.1.100
  • Тип: <Object>

Используется для вывода данных в stdout и stderr. См. раздел console.

Класс: CountQueuingStrategy

История
Версия Изменения
v22.15.0

API объявлен стабильным.

v18.0.0

Добавлено в версии: v18.0.0

Реализация CountQueuingStrategy, совместимая с браузерами.

Класс: Crypto

История
Версия Изменения
v19.0.0

Больше не требует флага командной строки --experimental-global-webcrypto.

v17.6.0, v16.15.0

Добавлено в версии: v17.6.0, v16.15.0

Стабильность: 1 - Экспериментальный API. Отключить этот API можно с помощью флага командной строки --no-experimental-global-webcrypto.

Реализация <Crypto>, совместимая с браузерами. Этот глобальный объект доступен только в том случае, если двоичный файл Node.js был собран с поддержкой модуля node:crypto.

crypto

История
Версия Изменения
v19.0.0

Больше не требует флага командной строки --experimental-global-webcrypto.

v17.6.0, v16.15.0

Добавлено в версии: v17.6.0, v16.15.0

Стабильность: 1 - Экспериментальный API. Отключить этот API можно с помощью флага командной строки --no-experimental-global-webcrypto.

Реализация Web Crypto API, совместимая с браузерами.

Класс: CryptoKey

История
Версия Изменения
v19.0.0

Больше не требует флага командной строки --experimental-global-webcrypto.

v17.6.0, v16.15.0

Добавлено в версии: v17.6.0, v16.15.0

Стабильность: 1 - Экспериментальный API. Отключить этот API можно с помощью флага командной строки --no-experimental-global-webcrypto.

Реализация <CryptoKey>, совместимая с браузерами. Этот глобальный объект доступен только в том случае, если двоичный файл Node.js был собран с поддержкой модуля node:crypto.

Класс: CustomEvent

История
Версия Изменения
v22.1.0, v20.13.0

CustomEvent теперь стабилен.

v19.0.0

Больше не требует флага командной строки --experimental-global-customevent.

v18.7.0, v16.17.0

Добавлено в версии: v18.7.0, v16.17.0

Реализация <CustomEvent>, совместимая с браузерами.

Класс: DecompressionStream

История
Версия Изменения
v22.20.0

Теперь format принимает значение brotli.

v22.15.0

API объявлен стабильным.

v18.0.0

Добавлено в версии: v18.0.0

Реализация DecompressionStream, совместимая с браузерами.

Класс: Event

История
Версия Изменения
v15.4.0

Больше не является экспериментальным.

v15.0.0

Добавлено в версии: v15.0.0

Реализация класса Event, совместимая с браузерами. Дополнительные сведения см. в разделе EventTarget и API Event.

Класс: EventSource

Добавлено в версии: v22.3.0
Стабильность: 1 - Экспериментальный API. Включить этот API можно с помощью флага командной строки --experimental-eventsource.

Реализация <EventSource>, совместимая с браузерами.

Класс: EventTarget

История
Версия Изменения
v15.4.0

Больше не является экспериментальным.

v15.0.0

Добавлено в версии: v15.0.0

Реализация класса EventTarget, совместимая с браузерами. Дополнительные сведения см. в разделе EventTarget и API Event.

exports

Эта переменная может показаться глобальной, но таковой не является. См. exports.

fetch

История
Версия Изменения
v21.0.0

Больше не является экспериментальным.

v18.0.0

Больше не требует флага командной строки --experimental-fetch.

v17.5.0, v16.15.0

Добавлено в версии: v17.5.0, v16.15.0

Реализация функции fetch(), совместимая с браузерами.

const res = await fetch('https://nodejs.org/api/documentation.json');
if (res.ok) {
  const data = await res.json();
  console.log(data);
} copy

Реализация основана на undici — HTTP/1.1-клиенте, написанном с нуля для Node.js. Версию undici, включенную в процесс Node.js, можно узнать, прочитав свойство process.versions.undici.

Пользовательский диспетчер

Для отправки запросов можно использовать пользовательский диспетчер, передав его в объекте параметров fetch. Диспетчер должен быть совместим с классом Dispatcher из undici.

fetch(url, { dispatcher: new MyAgent() }); copy

В Node.js можно изменить глобальный диспетчер, установив undici и используя метод setGlobalDispatcher(). Вызов этого метода повлияет как на undici, так и на Node.js.

import { setGlobalDispatcher } from 'undici';
setGlobalDispatcher(new MyAgent()); copy

Связанные классы

Для использования с fetch доступны следующие глобальные объекты:

  • FormData
  • Headers
  • Request
  • Response.

Класс: 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

Реализация <FormData>, совместимая с браузерами.

global

Добавлено в версии: v0.1.27
Стабильность: 3 - Устаревший API. Вместо него используйте globalThis.
  • Тип: <Object> Объект глобального пространства имен.

В браузерах область видимости верхнего уровня традиционно является глобальной областью видимости. Это означает, что var something объявляет новую глобальную переменную, за исключением кода внутри модулей ECMAScript. В Node.js это устроено иначе. Область видимости верхнего уровня не является глобальной; var something внутри модуля Node.js будет локальной для этого модуля независимо от того, является ли он модулем CommonJS или модулем ECMAScript.

Класс: Headers

История
Версия Изменения
v21.0.0

Больше не является экспериментальным.

v18.0.0

Больше не требует флага командной строки --experimental-fetch.

v17.5.0, v16.15.0

Добавлено в версии: v17.5.0, v16.15.0

Реализация <Headers>, совместимая с браузерами.

localStorage

Добавлено в версии: v22.4.0
Стабильность: 1.0 - Ранняя стадия разработки.

Реализация localStorage, совместимая с браузерами. Данные хранятся без шифрования в файле, указанном флагом командной строки --localstorage-file. Максимальный объем хранимых данных составляет 10 МБ. Изменение этих данных вне API Web Storage не поддерживается. Включить этот API можно с помощью флага командной строки --experimental-webstorage. localStorage данные не разделяются по пользователям или запросам при использовании на сервере, а являются общими для всех пользователей и запросов.

Класс: MessageChannel

Добавлено в версии: v15.0.0

Класс MessageChannel. Дополнительные сведения см. в разделе MessageChannel.

Класс: MessageEvent

Добавлено в версии: v15.0.0

Реализация <MessageEvent>, совместимая с браузерами.

Класс: MessagePort

Добавлено в версии: v15.0.0

Класс MessagePort. Дополнительные сведения см. в разделе MessagePort.

module

Эта переменная может показаться глобальной, но таковой не является. См. module.

Класс: Navigator

Добавлено в версии: v21.0.0
Стабильность: 1.1 - Активная разработка. Отключить этот API можно с помощью флага командной строки --no-experimental-global-navigator.

Частичная реализация API Navigator.

navigator

Добавлено в версии: v21.0.0
Стабильность: 1.1 - Активная разработка. Отключить этот API можно с помощью флага командной строки --no-experimental-global-navigator.

Частичная реализация window.navigator.

navigator.hardwareConcurrency

Добавлено в версии: v21.0.0
  • Тип: <number>

Доступное только для чтения свойство navigator.hardwareConcurrency возвращает количество логических процессоров, доступных текущему экземпляру Node.js.

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

navigator.language

Добавлено в версии: v21.2.0
  • Тип: <string>

Доступное только для чтения свойство 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
  • Тип: <string>

Доступное только для чтения свойство navigator.platform возвращает строку, указывающую платформу, на которой выполняется экземпляр Node.js.

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

navigator.userAgent

Добавлено в версии: v21.1.0
  • Тип: <string>

Доступное только для чтения свойство navigator.userAgent возвращает строку агента пользователя, состоящую из имени среды выполнения и номера основной версии.

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

Класс: 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
  • Тип: <Object>

Объект process. См. раздел объект process.

queueMicrotask(callback)

Добавлено в: v11.0.0
  • callback <Function> Функция, которую нужно поместить в очередь.

Метод queueMicrotask() помещает микрозадачу в очередь для вызова callback. Если callback выбрасывает исключение, будет сгенерировано событие 'uncaughtException' объекта process.

Очередью микрозадач управляет V8; её можно использовать аналогично очереди process.nextTick(), которой управляет Node.js. Очередь process.nextTick() всегда обрабатывается перед очередью микрозадач в каждом цикле цикла событий Node.js.

// 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

История
Версия Изменения
v22.15.0

API переведён в стабильный статус.

v18.0.0

Добавлено в: v18.0.0

Совместимая с браузером реализация ReadableByteStreamController.

Класс: ReadableStream

История
Версия Изменения
v22.15.0

API переведён в стабильный статус.

v18.0.0

Добавлено в: v18.0.0

Совместимая с браузером реализация ReadableStream.

Класс: ReadableStreamBYOBReader

История
Версия Изменения
v22.15.0

API переведён в стабильный статус.

v18.0.0

Добавлено в: v18.0.0

Совместимая с браузером реализация ReadableStreamBYOBReader.

Класс: ReadableStreamBYOBRequest

История
Версия Изменения
v22.15.0

API переведён в стабильный статус.

v18.0.0

Добавлено в: v18.0.0

Совместимая с браузером реализация ReadableStreamBYOBRequest.

Класс: ReadableStreamDefaultController

История
Версия Изменения
v22.15.0

API переведён в стабильный статус.

v18.0.0

Добавлено в: v18.0.0

Совместимая с браузером реализация ReadableStreamDefaultController.

Класс: ReadableStreamDefaultReader

История
Версия Изменения
v22.15.0

API переведён в стабильный статус.

v18.0.0

Добавлено в: v18.0.0

Совместимая с браузером реализация ReadableStreamDefaultReader.

require()

Эта переменная может показаться глобальной, но это не так. См. require().

Класс: Response

История
Версия Изменения
v21.0.0

Больше не является экспериментальным.

v18.0.0

Больше не требует флага командной строки --experimental-fetch.

v17.5.0, v16.15.0

Добавлено в: v17.5.0, v16.15.0

Совместимая с браузером реализация <Response>.

Класс: Request

История
Версия Изменения
v21.0.0

Больше не является экспериментальным.

v18.0.0

Больше не требует флага командной строки --experimental-fetch.

v17.5.0, v16.15.0

Добавлено в: v17.5.0, v16.15.0

Совместимая с браузером реализация <Request>.

sessionStorage

Добавлено в: v22.4.0
Стабильность: 1.0 - Ранняя разработка.

Совместимая с браузером реализация sessionStorage. Данные хранятся в памяти; квота хранилища составляет 10 МБ. sessionStorage данные сохраняются только во время работы текущего процесса и не являются общими для разных рабочих потоков.

setImmediate(callback[, ...args])

Добавлено в: v0.9.1

Описание setImmediate приведено в разделе таймеров.

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

Добавлено в: v0.0.1

Описание setInterval приведено в разделе таймеров.

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

Добавлено в: v0.0.1

Описание setTimeout приведено в разделе таймеров.

Класс: Storage

Добавлено в: v22.4.0
Стабильность: 1.0 - Ранняя разработка. Включите этот API с помощью флага командной строки --experimental-webstorage.

Совместимая с браузером реализация <Storage>.

structuredClone(value[, options])

Добавлено в: v17.0.0

Метод WHATWG structuredClone.

Класс: SubtleCrypto

История
Версия Изменения
v19.0.0

Больше не требует флага командной строки --experimental-global-webcrypto.

v17.6.0, v16.15.0

Добавлено в: v17.6.0, v16.15.0

Стабильность: 1 - Экспериментальный. Отключите этот API с помощью флага командной строки --no-experimental-global-webcrypto.

Совместимая с браузером реализация <SubtleCrypto>. Эта глобальная переменная доступна только в том случае, если бинарный файл Node.js скомпилирован с поддержкой модуля node:crypto.

Класс: DOMException

Добавлено в: v17.0.0

Класс WHATWG <DOMException>.

Класс: TextDecoder

Добавлено в: v11.0.0

Класс WHATWG TextDecoder. См. раздел TextDecoder.

Класс: TextDecoderStream

История
Версия Изменения
v22.15.0

API переведён в стабильный статус.

v18.0.0

Добавлено в: v18.0.0

Совместимая с браузером реализация TextDecoderStream.

Класс: TextEncoder

Добавлено в: v11.0.0

Класс WHATWG TextEncoder. См. раздел TextEncoder.

Класс: TextEncoderStream

История
Версия Изменения
v22.15.0

API переведён в стабильный статус.

v18.0.0

Добавлено в: v18.0.0

Совместимая с браузером реализация TextEncoderStream.

Класс: TransformStream

История
Версия Изменения
v22.15.0

API переведён в стабильный статус.

v18.0.0

Добавлено в: v18.0.0

Совместимая с браузером реализация TransformStream.

Класс: TransformStreamDefaultController

История
Версия Изменения
v22.15.0

API переведён в стабильный статус.

v18.0.0

Добавлено в: v18.0.0

Совместимая с браузером реализация TransformStreamDefaultController.

Класс: URL

Добавлено в: v10.0.0

Класс WHATWG URL. См. раздел URL.

Класс: URLSearchParams

Добавлено в: v10.0.0

Класс WHATWG URLSearchParams. См. раздел URLSearchParams.

Класс: WebAssembly

Добавлено в: v8.0.0
  • Тип: <Object>

Объект, служащий пространством имён для всех возможностей W3C, связанных с WebAssembly. Сведения об использовании и совместимости см. в сети разработчиков Mozilla.

Класс: WebSocket

История
Версия Изменения
v22.4.0

Больше не является экспериментальным.

v22.0.0

Больше не требует флага командной строки --experimental-websocket.

v21.0.0, v20.10.0

Добавлено в: v21.0.0, v20.10.0

Совместимая с браузером реализация <WebSocket>. Отключите этот API с помощью флага командной строки --no-experimental-websocket.

Класс: WritableStream

История
Версия Изменения
v22.15.0

API переведён в стабильный статус.

v18.0.0

Добавлено в: v18.0.0

Совместимая с браузером реализация WritableStream.

Класс: WritableStreamDefaultController

История
Версия Изменения
v22.15.0

API переведён в стабильный статус.

v18.0.0

Добавлено в: v18.0.0

Совместимая с браузером реализация WritableStreamDefaultController.

Класс: WritableStreamDefaultWriter

История
Версия Изменения
v22.15.0

API переведён в стабильный статус.

v18.0.0

Добавлено в: v18.0.0

Совместимая с браузером реализация WritableStreamDefaultWriter.

© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v22.x/docs/api/globals.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API