globalThis
¿Te has preguntado cómo acceder al objeto global en JavaScript de manera consistente en todos los entornos? globalThis proporciona una manera fácil y consistente de acceder al objeto global, sin importar si estás trabajando en un navegador o en un entorno de servidor como Node.js.
Para empezar, es primordial comprender que el objeto global en JavaScript es un objeto predefinido que sirve como medio para acceder a determinadas propiedades y métodos del entorno de ejecución de JavaScript.
Algunos ejemplos de propiedades y métodos importantes del objeto global incluyen:
console
: un objeto que proporciona métodos para imprimir mensajes en la consola, por ejemplo:
console.log()
: imprime mensajes en la consola.console.warn()
: imprime mensajes de advertencia en la consola.console.error()
: imprime mensajes de error en la consola.
Math
: un objeto que proporciona propiedades y métodos relacionados con matemáticas. Algunas propiedades y métodos del objeto Math
incluyen:
Math.PI
: una propiedad que contiene el valor de pi.Math.floor()
: un método que redondea un número hacia abajo.Math.random()
: un método que devuelve un número "aleatorio" entre 0 y 1.setTimeout()
: un método para ejecutar una función después de un tiempo determinado.
Date
: un objeto que proporciona propiedades y métodos para trabajar con fechas y horas. Algunos métodos del objeto Date
incluyen:
Date.now()
: un método que devuelve la fecha y hora actuales.Date.getFullYear()
: un método que devuelve el año actual.
El objeto global no es más que una parte del entorno de ejecución de JavaScript, así mismo es importante tener en cuenta que no todas las propiedades y métodos del objeto global son universales y pueden variar dependiendo del entorno de ejecución. Por ejemplo, algunas propiedades y métodos del objeto global solo están disponibles en navegadores y no están disponibles en Node.js, y viceversa.
Además, es importante tener en cuenta que el objeto global puede ser modificado por el código de usuario, lo que puede llevar a conflictos o problemas de compatibilidad. Por lo tanto, es recomendable utilizar el objeto global con precaución y evitar modificarlo de manera innecesaria.
Ahora, anteriormente hablamos que las propiedades y metodos difieren dependiendo de donde se utilice, por el ejemplo en un navegador, el objeto global es window
o frames
, mientras que en NodeJS es global
, y en Web Workers self
, añadiendo this
a la lista dependiendo del contexto.
window.console.log("Es un mensaje en consola en un navegador.");
frames.console.log("Es un mensaje en consola en un navegador.");
global.console.log("Es un mensaje en consola en NodeJS.");
self.console.log("Es un mensaje en consola en WebWorker API.");
Para resolver el problema de tener diferentes maneras de acceder al objeto global dependiendo de donde se utilice, se agregó globalThis
en JavaScript a partir de la versión ECMAScript 2021 (ES2020).
Fue incluido en la norma para proporcionar una forma consistente de acceder al objeto global en todos los entornos de JavaScript, incluyendo navegadores y Node.js.
globalThis.console.log("Es un mensaje en consola para cualquier entorno.");
En conclusión, globalThis es una característica de JavaScript que proporciona una manera consistente de acceder al objeto global en todos los entornos de JavaScript.
Krative Digital Boletin informativo
Únase al boletín para recibir las últimas actualizaciones en su bandeja de entrada.