ES, что означает ECMAScript, является стандартизированной спецификацией языка сценариев. Первоначально он назывался Mocha и, наконец, JavaScript. На данный момент вышло десять выпусков.

Новые функции ES10 включают flat (), flatMap (), object.fromEntries (), trimStart (), необязательную привязку catch и многое другое. В этом посте мы рассмотрим эти новые функции и посмотрим, как они обновляют язык.

1. flat () и flatMap ()

Метод flat () сглаживает массив на заданную глубину. Плоский уровень по умолчанию равен 1. Метод Flat (Infinity) выравнивает массив до последней глубины массива.

const Numbers = [12,3,3,[33,3,4,55,[34,6,7,9,0]]];
console.log(Numbers.flat()); // Default flat level is 1
// output : [12, 3, 3, 33, 3, 4, 55, Array(5)]
console.log(Numbers.flat(Infinity));
// output : [12, 3, 3, 33, 3, 4, 55, 34, 6, 7, 9, 0]

Метод flatMap () сначала отображает каждый элемент с помощью функции сопоставления, а затем преобразует результат в новый массив.

const Numbers = [1,2,3,4,5,6];
const alphaNumber = ['one', 'two', 'three', 'four', 'five', 'six'];
const mappedAndFlattenedExample = Numbers.flatMap((number, index) => [
  number,
  alphaNumber[index]
]);
console.log(mappedAndFlattenedExample);
// output : [1, 'one', 2, 'two', 3, 'three', 4, 'four', 5, 'five', 6, 'six']

2. trimStart () и trimEnd ()

Методы trimStart () / trimLeft () удаляют пробелы в начале строки.

const greeting = '   Hello world!   ';
console.log(greeting);
//output: "   Hello world!   ";
console.log(greeting.trimStart());
//output: "Hello world!   ";

Методы trimEnd () / trimRight () удаляют пробелы в конце строки.

const greeting = '   Hello world!   ';
console.log(greeting);
//output: "   Hello world!   ";
console.log(greeting.trimEnd());
//output: "   Hello world!";

3. Object.fromEntries ()

Метод Object.fromEntries () преобразует список пар ключ-значение в объект.

const entries = new Map([
  ['foo', 'bar'],
  ['baz', 42]
]);
const obj = Object.fromEntries(entries);
console.log(obj);
//output: Object { foo: "bar", baz: 42 }

4. Дополнительная привязка улова

Одна из новых функций, которую они придумали, - это возможность не привязывать параметр ошибки к закрытию улова.

try {
      throw "Error not bothered about";
    } catch {
      // logic..
    }

5. Свойство Description для объектов Symbol.

При создании символов теперь вы можете добавить к нему описание в целях отладки. Он вернет строку, содержащую описание символа.

let sym = Symbol('foo');
console.log(sym.description);    
//output: foo

sym = Symbol();
console.log(sym.description);    
//output: undefined

// create a global symbol
sym = Symbol.for('bar');
console.log(sym.description);    
//output: bar