No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Regálate acceso ilimitado a todos los cursos por 1 año a precio especial de Navidad 🎄

Antes: $199

Currency
$149/año
regístrate

termina en:

16D
13H
31M
9S

ES11: globalThis y matchAll

32/38
Recursos

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).

Aportes 12

Preguntas 1

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

🤓 Pequeña corrección, es self, no selft. Puedes comprobarlo si colocas en la consola del navegador self, te mostrará el objeto window.

Un aplauso para la estrella de este curso:

console.log 😂😂😂!..

Na es broma, pero lo he escrito tantas veces que anoche soñé con él

A un aporte tonto si se escribe solo la palabra log el editor te completa la sintaxis completa. 💪🏻💪🏻💪🏻

Hola [email protected] 😃

ES11:

  • GlobalThis
console.log(window); // navegador
console.log(global);  // node
console.log(selft);// webworker
console.log(globalThis);

  • MatchAll
const regex = /\b(Apple)+\b/g;

const fruit = "Apple, Banana, Kiwi, Apple, Orange, etc. etc. etc.";

for (const match of fruit.matchAll(regex)) {
    console.log(match);
}

Firma la petición 🤓

Para quien lo ocupe 😄
const regex = /\b(Apple)+\b/g;

Creo que no es completamente necesario usar una expresion regular, probé metiendo directamente un string dentro del matchAll() y también funcionó.

Comparto por aquí el código de la última parte

 const regex = /\b(White)+\b/g;

 const colors = 'Red, Green, Yellow, Black, White, Grey';

 for (const match of colors.matchAll(regex)){
  console.log(match);
 }

Muy interesante el matchAll, miré que lo que retorna funciona como un Generator, se puede utilizar el método next() y todo, junto a su propiedad value, también con una propiedad done.

Se podria utilizar para validar que el comentario que deja un usuario no contenga ninguna palabra prohibida, en vez de filtrar por Apple, se filtraria por la(s) palabra(s) prohibida(s).

Yo lo utilizaría si estoy haciendo un sign-up para verificar que la contraseña no sea el nombre de usuario ni el correo del usuario.

Apunte en Notion