ECMA SCRIPT 2022

By malcode

Empecemos…🤞

Métodos privados en clases


class Dog {
    #id; // Atributo privado
    name;
    age;

    constructor(id, name, age) {
        this.#id = id;
        this.name = name;
        this.age = age;
    }

    #getId() {
        return this.#id;
    }
}

const dog= new Dog(1, 'Firulais', 2);
console.log(dog.#getId()); // undefined ❌ 🤔 getId es un metodo privado

El método .at()

Permite obtener el primer elemento de una arreglo o cadena. Si la posición es negativa empieza desde el último elemento.


new Int8Array([1, 2, 3]).at(-1); // 3
[1, 2, 3].at(0); // 1
'amen'.at(0); // 'a'

.hasOwn()

Retorna true o false si el objeto tiene un propiedad o no.


const dog= {
    name: 'Firulais',
    age: 2
};
Object.hasOwn(dog,'name'); // true
Object.hasOwn(dog,'id'); // false

Cause

Propiedad que puedes usar para dar una estructura a una excepción.


try {
    fetch('https://api.github.com/users/malcodexxx')
    .then(res => res.json())
    .then(data => console.log(data))
    .catch((error) => {
        throw new Error('Error generado por: ', {cause: error?.response?.message});
        });
} catch (err) {
    console.log(err); // Error generado por: Error:  
    console.log(err.cause); // TypeError: Not Found
}

.groupBy()

Agrupar arreglos en subarreglos basados en condicionales al momento de iterar.


const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
numbers.groupBy(n => n % 2 === 0?'even':'odd'); // {even:[ 2, 4, 6, 8, 10 ], odd:[ 1, 3, 5, 7, 9 ]} 

Es todo... 🥱