Uso de Global Disk y Match All en JavaScript
Clase 29 de 35 • Curso de ECMAScript: Historia y Versiones de JavaScript
Resumen
⚠️ En el código de la clase se escribe
selft
para acceder al ámbito global de un webworker, y debería serself
.
Las siguientes características de ES2020 que aprenderás son: el objeto global para cualquier plataforma y el método matchAll
para expresiones regulares.
Objeto global para cualquier plataforma
El motor de JavaScript, aquel que compila tu archivo y lo convierte en código que entiende el computador, al iniciar la compilación crea un objeto global.
El objeto global proporciona funciones y variables propias e integradas en el lenguaje o el entorno. Dependiendo la plataforma, este objeto global tendrá un nombre diferente.
En el navegador el objeto global es window
, para Node.js es global
, y así para cada entorno. Sin embargo, en Node.js no podrás acceder a window
, ni en el navegador podrás acceder a global
.
Para estandarizar el objeto global se creó globalThis
, un objeto compatible para cualquier plataforma.
// Ejecuta el siguiente código y observa que muestra
console.log(window)
console.log(globalThis)
// En el navegador
window === globalThis // true
// En Node.js
global === globalThis // true
Método matchAll
para expresiones regulares
El método matchAll
de los strings devuelve un iterable con todas las coincidencias del string específico a partir de una expresión regular, colocada como argumento.
string.matchAll(regex)
En el iterable, existe una propiedad denominada index
con el índice del string donde la búsqueda coincide.
const regex = /\b(Apple)+\b/g
const fruit = "Apple, Banana, Kiwi, Apple, Orange, etc. etc. etc."
// Tranformación del iterable retornado a array
const array = [...fruit.matchAll(regex)]
console.log(array)
/*
[
[
'Apple',
'Apple',
index: 0,
input: 'Apple, Banana, Kiwi, Apple, Orange, etc. etc. etc.',
groups: undefined
],
[
'Apple',
'Apple',
index: 21,
input: 'Apple, Banana, Kiwi, Apple, Orange, etc. etc. etc.',
groups: undefined
]
]
*/
Contribución creada por Andrés Guano (Platzi Contributor).