Skip to content

Objetos globales

Estos objetos están disponibles en todos los módulos.

Las siguientes variables pueden parecer globales, pero no lo son. Solo existen en el ámbito de los módulos CommonJS:

Los objetos enumerados aquí son específicos de Node.js. Hay objetos incorporados que forman parte del propio lenguaje JavaScript, que también son accesibles globalmente.

Clase: AbortController

[Historial]

VersiónCambios
v15.4.0Ya no es experimental.
v15.0.0, v14.17.0Agregado en: v15.0.0, v14.17.0

Una clase de utilidad que se utiliza para señalar la cancelación en las API seleccionadas basadas en Promise. La API se basa en la API web AbortController.

js
const ac = new AbortController();

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

ac.abort();

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

abortController.abort([reason])

[Historial]

VersiónCambios
v17.2.0, v16.14.0Se agregó el nuevo argumento de razón opcional.
v15.0.0, v14.17.0Agregado en: v15.0.0, v14.17.0
  • reason <any> Una razón opcional, recuperable en la propiedad reason de AbortSignal.

Activa la señal de anulación, lo que provoca que abortController.signal emita el evento 'abort'.

abortController.signal

Agregado en: v15.0.0, v14.17.0

Clase: AbortSignal

Agregado en: v15.0.0, v14.17.0

AbortSignal se utiliza para notificar a los observadores cuando se llama al método abortController.abort().

Método estático: AbortSignal.abort([reason])

[Historial]

VersiónCambios
v17.2.0, v16.14.0Se agregó el nuevo argumento opcional reason.
v15.12.0, v14.17.0Agregado en: v15.12.0, v14.17.0

Devuelve una nueva AbortSignal ya abortada.

Método estático: AbortSignal.timeout(delay)

Agregado en: v17.3.0, v16.14.0

  • delay <number> El número de milisegundos a esperar antes de activar AbortSignal.

Devuelve una nueva AbortSignal que se abortará en delay milisegundos.

Método estático: AbortSignal.any(signals)

Agregado en: v20.3.0, v18.17.0

  • signals <AbortSignal[]> Las AbortSignals de las cuales componer una nueva AbortSignal.

Devuelve una nueva AbortSignal que se abortará si alguna de las señales proporcionadas se aborta. Su abortSignal.reason se establecerá en la que causó que se abortara de las signals.

Evento: 'abort'

Agregado en: v15.0.0, v14.17.0

El evento 'abort' se emite cuando se llama al método abortController.abort(). La función de devolución de llamada se invoca con un único argumento de objeto con una única propiedad type establecida en 'abort':

js
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();

El AbortController con el que está asociado el AbortSignal solo activará el evento 'abort' una vez. Recomendamos que el código verifique que el atributo abortSignal.aborted sea false antes de agregar un detector de eventos 'abort'.

Cualquier detector de eventos adjunto al AbortSignal debe usar la opción { once: true } (o, si usa las API de EventEmitter para adjuntar un detector, use el método once()) para garantizar que el detector de eventos se elimine tan pronto como se maneje el evento 'abort'. No hacerlo puede provocar pérdidas de memoria.

abortSignal.aborted

Agregado en: v15.0.0, v14.17.0

  • Tipo: <boolean> Verdadero después de que se haya abortado el AbortController.

abortSignal.onabort

Agregado en: v15.0.0, v14.17.0

Una función de devolución de llamada opcional que el código de usuario puede establecer para recibir una notificación cuando se haya llamado a la función abortController.abort().

abortSignal.reason

Agregado en: v17.2.0, v16.14.0

Una razón opcional especificada cuando se activó AbortSignal.

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

abortSignal.throwIfAborted()

Agregado en: v17.3.0, v16.17.0

Si abortSignal.aborted es true, lanza abortSignal.reason.

Clase: Blob

Agregado en: v18.0.0

Ver <Blob>.

Clase: Buffer

Agregado en: v0.1.103

Se utiliza para manejar datos binarios. Ver la sección del buffer.

Clase: ByteLengthQueuingStrategy

Agregado en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de ByteLengthQueuingStrategy.

__dirname

Esta variable puede parecer global pero no lo es. Ver __dirname.

__filename

Esta variable puede parecer global pero no lo es. Ver __filename.

atob(data)

Agregado en: v16.0.0

[Estable: 3 - Legado]

Estable: 3 Estabilidad: 3 - Legado. Utilice Buffer.from(data, 'base64') en su lugar.

Alias global para buffer.atob().

BroadcastChannel

Añadido en: v18.0.0

Ver <BroadcastChannel>.

btoa(data)

Añadido en: v16.0.0

[Estable: 3 - Legado]

Estable: 3 Estabilidad: 3 - Legado. Use buf.toString('base64') en su lugar.

Alias global para buffer.btoa().

clearImmediate(immediateObject)

Añadido en: v0.9.1

clearImmediate se describe en la sección de temporizadores.

clearInterval(intervalObject)

Añadido en: v0.0.1

clearInterval se describe en la sección de temporizadores.

clearTimeout(timeoutObject)

Añadido en: v0.0.1

clearTimeout se describe en la sección de temporizadores.

CloseEvent

Añadido en: v23.0.0

La clase CloseEvent. Ver CloseEvent para más detalles.

Una implementación compatible con el navegador de CloseEvent. Deshabilite esta API con el indicador de CLI --no-experimental-websocket.

Clase: CompressionStream

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de CompressionStream.

console

Añadido en: v0.1.100

Se utiliza para imprimir en stdout y stderr. Ver la sección console.

Clase: CountQueuingStrategy

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de CountQueuingStrategy.

Crypto

[Historia]

VersiónCambios
v23.0.0Ya no es experimental.
v19.0.0Ya no está detrás del flag de CLI --experimental-global-webcrypto.
v17.6.0, v16.15.0Agregado en: v17.6.0, v16.15.0

[Estable: 2 - Estable]

Estable: 2 Estabilidad: 2 - Estable.

Una implementación compatible con el navegador de <Crypto>. Esta global solo está disponible si el binario de Node.js fue compilado incluyendo soporte para el módulo node:crypto.

crypto

[Historia]

VersiónCambios
v23.0.0Ya no es experimental.
v19.0.0Ya no está detrás del flag de CLI --experimental-global-webcrypto.
v17.6.0, v16.15.0Agregado en: v17.6.0, v16.15.0

[Estable: 2 - Estable]

Estable: 2 Estabilidad: 2 - Estable.

Una implementación compatible con el navegador de la Web Crypto API.

CryptoKey

[Historia]

VersiónCambios
v23.0.0Ya no es experimental.
v19.0.0Ya no está detrás del flag de CLI --experimental-global-webcrypto.
v17.6.0, v16.15.0Agregado en: v17.6.0, v16.15.0

[Estable: 2 - Estable]

Estable: 2 Estabilidad: 2 - Estable.

Una implementación compatible con el navegador de <CryptoKey>. Esta global solo está disponible si el binario de Node.js fue compilado incluyendo soporte para el módulo node:crypto.

CustomEvent

[Historia]

VersiónCambios
v23.0.0Ya no es experimental.
v22.1.0, v20.13.0CustomEvent ahora es estable.
v19.0.0Ya no está detrás del flag de CLI --experimental-global-customevent.
v18.7.0, v16.17.0Agregado en: v18.7.0, v16.17.0

[Estable: 2 - Estable]

Estable: 2 Estabilidad: 2 - Estable

Una implementación compatible con el navegador de la CustomEvent Web API.

Clase: DecompressionStream

Agregado en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de DecompressionStream.

Event

[Historial]

VersiónCambios
v15.4.0Ya no es experimental.
v15.0.0Agregado en: v15.0.0

Una implementación compatible con el navegador de la clase Event. Consulte la API EventTarget y Event para obtener más detalles.

EventSource

Agregado en: v22.3.0, v20.18.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental. Habilite esta API con el indicador CLI --experimental-eventsource.

Una implementación compatible con el navegador de la clase EventSource.

EventTarget

[Historial]

VersiónCambios
v15.4.0Ya no es experimental.
v15.0.0Agregado en: v15.0.0

Una implementación compatible con el navegador de la clase EventTarget. Consulte la API EventTarget y Event para obtener más detalles.

exports

Esta variable puede parecer global, pero no lo es. Consulte exports.

fetch

[Historial]

VersiónCambios
v21.0.0Ya no es experimental.
v18.0.0Ya no está detrás del indicador CLI --experimental-fetch.
v17.5.0, v16.15.0Agregado en: v17.5.0, v16.15.0

[Estable: 2 - Estable]

Estable: 2 Estabilidad: 2 - Estable

Una implementación compatible con el navegador de la función fetch().

Clase: File

Agregado en: v20.0.0

Consulte <File>.

Clase FormData

[Historial]

VersiónCambios
v21.0.0Ya no es experimental.
v18.0.0Ya no está detrás del flag CLI --experimental-fetch.
v17.6.0, v16.15.0Añadido en: v17.6.0, v16.15.0

[Estable: 2 - Estable]

Estable: 2 Estabilidad: 2 - Estable

Una implementación compatible con el navegador de <FormData>.

global

Añadido en: v0.1.27

[Estable: 3 - Legado]

Estable: 3 Estabilidad: 3 - Legado. Utilice globalThis en su lugar.

  • <Object> El objeto de espacio de nombres global.

En los navegadores, el alcance de nivel superior ha sido tradicionalmente el alcance global. Esto significa que var algo definirá una nueva variable global, excepto dentro de los módulos ECMAScript. En Node.js, esto es diferente. El alcance de nivel superior no es el alcance global; var algo dentro de un módulo Node.js será local a ese módulo, independientemente de si es un módulo CommonJS o un módulo ECMAScript.

Clase Headers

[Historial]

VersiónCambios
v21.0.0Ya no es experimental.
v18.0.0Ya no está detrás del flag CLI --experimental-fetch.
v17.5.0, v16.15.0Añadido en: v17.5.0, v16.15.0

[Estable: 2 - Estable]

Estable: 2 Estabilidad: 2 - Estable

Una implementación compatible con el navegador de <Headers>.

localStorage

Añadido en: v22.4.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1.0 - Desarrollo temprano.

Una implementación compatible con el navegador de localStorage. Los datos se almacenan sin cifrar en el archivo especificado por el flag CLI --localstorage-file. La cantidad máxima de datos que se pueden almacenar es de 10 MB. No se admite ninguna modificación de estos datos fuera de la API de Web Storage. Habilite esta API con el flag CLI --experimental-webstorage. Los datos de localStorage no se almacenan por usuario o por solicitud cuando se utilizan en el contexto de un servidor, se comparten entre todos los usuarios y solicitudes.

MessageChannel

Añadido en: v15.0.0

La clase MessageChannel. Ver MessageChannel para más detalles.

MessageEvent

Añadido en: v15.0.0

La clase MessageEvent. Ver MessageEvent para más detalles.

MessagePort

Añadido en: v15.0.0

La clase MessagePort. Ver MessagePort para más detalles.

module

Esta variable puede parecer global, pero no lo es. Ver module.

Añadido en: v21.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1.1 - Desarrollo activo. Deshabilita esta API con el flag de la CLI --no-experimental-global-navigator.

Una implementación parcial de la API Navigator.

Añadido en: v21.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1.1 - Desarrollo activo. Deshabilita esta API con el flag de la CLI --no-experimental-global-navigator.

Una implementación parcial de window.navigator.

Añadido en: v21.0.0

La propiedad de sólo lectura navigator.hardwareConcurrency devuelve el número de procesadores lógicos disponibles para la instancia actual de Node.js.

js
console.log(`Este proceso se está ejecutando en ${navigator.hardwareConcurrency} procesadores lógicos`);

Añadido en: v21.2.0

La propiedad de sólo lectura navigator.language devuelve una cadena que representa el idioma preferido de la instancia de Node.js. El idioma será determinado por la biblioteca ICU utilizada por Node.js en tiempo de ejecución basándose en el idioma predeterminado del sistema operativo.

El valor representa la versión del idioma tal como se define en RFC 5646.

El valor de reserva en compilaciones sin ICU es 'en-US'.

js
console.log(`El idioma preferido de la instancia de Node.js tiene la etiqueta '${navigator.language}'`);

Añadido en: v21.2.0

  • {Array

La propiedad de solo lectura navigator.languages devuelve una array de cadenas que representan los idiomas preferidos de la instancia de Node.js. De forma predeterminada, navigator.languages contiene solo el valor de navigator.language, que será determinado por la biblioteca ICU utilizada por Node.js en tiempo de ejecución basándose en el idioma predeterminado del sistema operativo.

El valor de respaldo en compilaciones sin ICU es ['en-US'].

js
console.log(`Los idiomas preferidos son '${navigator.languages}'`);

Añadido en: v21.2.0

La propiedad de solo lectura navigator.platform devuelve una cadena que identifica la plataforma en la que se está ejecutando la instancia de Node.js.

js
console.log(`Este proceso se está ejecutando en ${navigator.platform}`);

Añadido en: v21.1.0

La propiedad de solo lectura navigator.userAgent devuelve un agente de usuario que consiste en el nombre del tiempo de ejecución y el número de versión principal.

js
console.log(`El agente de usuario es ${navigator.userAgent}`); // Imprime "Node.js/21"

PerformanceEntry

Añadido en: v19.0.0

La clase PerformanceEntry. Ver PerformanceEntry para más detalles.

PerformanceMark

Añadido en: v19.0.0

La clase PerformanceMark. Ver PerformanceMark para más detalles.

PerformanceMeasure

Añadido en: v19.0.0

La clase PerformanceMeasure. Ver PerformanceMeasure para más detalles.

PerformanceObserver

Añadido en: v19.0.0

La clase PerformanceObserver. Ver PerformanceObserver para más detalles.

PerformanceObserverEntryList

Añadido en: v19.0.0

La clase PerformanceObserverEntryList. Ver PerformanceObserverEntryList para más detalles.

PerformanceResourceTiming

Agregado en: v19.0.0

La clase PerformanceResourceTiming. Véase PerformanceResourceTiming para más detalles.

performance

Agregado en: v16.0.0

El objeto perf_hooks.performance.

process

Agregado en: v0.1.7

El objeto process. Ver la sección process object.

queueMicrotask(callback)

Agregado en: v11.0.0

El método queueMicrotask() encola una microtarea para invocar callback. Si callback lanza una excepción, el evento 'uncaughtException' del process object será emitido.

La cola de microtareas es gestionada por V8 y puede ser usada de manera similar a la cola process.nextTick(), la cual es gestionada por Node.js. La cola process.nextTick() siempre es procesada antes de la cola de microtareas dentro de cada vuelta del bucle de eventos de Node.js.

js
// Aquí, `queueMicrotask()` es usado para asegurar que el evento 'load' siempre
// es emitido asíncronamente, y por lo tanto consistentemente. Usar
// `process.nextTick()` aquí resultaría en que el evento 'load' siempre se emitiera
// antes de cualquier otro trabajo de promesa.

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);
};

Clase: ReadableByteStreamController

Agregado en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de ReadableByteStreamController.

Clase: ReadableStream

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de ReadableStream.

Clase: ReadableStreamBYOBReader

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de ReadableStreamBYOBReader.

Clase: ReadableStreamBYOBRequest

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de ReadableStreamBYOBRequest.

Clase: ReadableStreamDefaultController

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de ReadableStreamDefaultController.

Clase: ReadableStreamDefaultReader

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de ReadableStreamDefaultReader.

require()

Esta variable puede parecer global, pero no lo es. Consulte require().

Response

[Historial]

VersiónCambios
v21.0.0Ya no es experimental.
v18.0.0Ya no está detrás del flag de la CLI --experimental-fetch.
v17.5.0, v16.15.0Añadido en: v17.5.0, v16.15.0

[Estable: 2 - Estable]

Estable: 2 Estabilidad: 2 - Estable

Una implementación compatible con el navegador de <Response>.

Request

[Historial]

VersiónCambios
v21.0.0Ya no es experimental.
v18.0.0Ya no está detrás del flag --experimental-fetch de la CLI.
v17.5.0, v16.15.0Añadido en: v17.5.0, v16.15.0

[Estable: 2 - Estable]

Estable: 2 Estabilidad: 2 - Estable

Una implementación compatible con el navegador de <Request>.

sessionStorage

Añadido en: v22.4.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1.0 - Desarrollo temprano.

Una implementación compatible con el navegador de sessionStorage. Los datos se almacenan en la memoria, con una cuota de almacenamiento de 10 MB. Los datos de sessionStorage persisten solo dentro del proceso en ejecución actual y no se comparten entre los workers.

setImmediate(callback[, ...args])

Añadido en: v0.9.1

setImmediate se describe en la sección de timers.

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

Añadido en: v0.0.1

setInterval se describe en la sección de timers.

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

Añadido en: v0.0.1

setTimeout se describe en la sección de timers.

Clase: Storage

Añadido en: v22.4.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1.0 - Desarrollo temprano.

Una implementación compatible con el navegador de Storage. Habilite esta API con el flag de la CLI --experimental-webstorage.

structuredClone(value[, options])

Añadido en: v17.0.0

El método WHATWG structuredClone.

SubtleCrypto

[Historial]

VersiónCambios
v19.0.0Ya no está detrás del indicador de CLI --experimental-global-webcrypto.
v17.6.0, v16.15.0Añadido en: v17.6.0, v16.15.0

[Estable: 2 - Estable]

Estable: 2 Estabilidad: 2 - Estable.

Una implementación compatible con el navegador de <SubtleCrypto>. Este global está disponible solo si el binario de Node.js se compiló incluyendo soporte para el módulo node:crypto.

DOMException

Añadido en: v17.0.0

La clase DOMException de WHATWG. Consulte DOMException para obtener más detalles.

TextDecoder

Añadido en: v11.0.0

La clase TextDecoder de WHATWG. Consulte la sección TextDecoder.

Clase: TextDecoderStream

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de TextDecoderStream.

TextEncoder

Añadido en: v11.0.0

La clase TextEncoder de WHATWG. Consulte la sección TextEncoder.

Clase: TextEncoderStream

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de TextEncoderStream.

Clase: TransformStream

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de TransformStream.

Clase: TransformStreamDefaultController

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de TransformStreamDefaultController.

URL

Añadido en: v10.0.0

La clase URL de WHATWG. Vea la sección URL.

URLSearchParams

Añadido en: v10.0.0

La clase URLSearchParams de WHATWG. Vea la sección URLSearchParams.

WebAssembly

Añadido en: v8.0.0

El objeto que actúa como espacio de nombres para toda la funcionalidad relacionada con WebAssembly de W3C. Consulte la Red de Desarrolladores de Mozilla para obtener información sobre el uso y la compatibilidad.

WebSocket

[Historial]

VersiónCambios
v22.4.0Ya no es experimental.
v22.0.0Ya no está detrás del indicador CLI --experimental-websocket.
v21.0.0, v20.10.0Añadido en: v21.0.0, v20.10.0

[Estable: 2 - Estable]

Estable: 2 Estabilidad: 2 - Estable.

Una implementación compatible con el navegador de WebSocket. Deshabilite esta API con el indicador CLI --no-experimental-websocket.

Clase: WritableStream

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de WritableStream.

Clase: WritableStreamDefaultController

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de WritableStreamDefaultController.

Clase: WritableStreamDefaultWriter

Añadido en: v18.0.0

[Estable: 1 - Experimental]

Estable: 1 Estabilidad: 1 - Experimental.

Una implementación compatible con el navegador de WritableStreamDefaultWriter.