Рубрики
Без рубрики

Что нового в ES2019

JavaScript постоянно развивается и получает обновления каждый год. Полезно для того, чтобы выучить как можно скорее, чтобы избежать подзадачивания синтаксиса и оставаться продуктивным в любой базе JavaScript.

Автор оригинала: José Silva.

Ecmascript (ES) – это спецификация, на которой основана JavaScript. Этот язык постоянно развивается и получает обновления каждый год. Полезно удерживаться, чтобы избежать отмагивания синтаксисом и оставаться продуктивным в любой базе JavaScript.

ES2019 доступен в последней версии Chrome, Firefox, Safari и Node. Он также доступен на более старых платформах через компиляцию с Babel или Teadercript. Не забудьте всегда проверять Могу ли я использовать Сайт, чтобы убедиться, что новая функция, которую вы хотите использовать, доступна на ваших целевых платформах.

  1. Array.flat ()
  2. Array.flatmap ()
  3. String.trimstart ()
  4. String.trimend ()
  5. Объект.Fromentries.
  6. Дополнительный переплет
  7. Symbol.prototype.description.
  8. Функция. Прототип.
  9. Улучшения JSON

Array.flat ()

квартира () Метод возвращает Новый массив льстит все элементы субарадирования рекурсивно до заданной глубины.

const a1 = [1, 2, [3, 4], 5];
console.log(a1.flat()); // OUTPUT: [1, 2, 3, 4, 5]

По умолчанию он только квартиры один уровень квартира (1) , но вы можете конвертировать любой Массив Многомерный до одномерного использования Бесконечность Отказ

const a2 = [1, 2, [[3, [4, 5]], 6], 7];
console.log(a2.flat(Infinity)); // OUTPUT: [1, 2, 3, 4, 5, 6, 7]

И, если у вас есть пустой элемент как часть вас Массив это будет удалено в новом Множество

const a3 = [1, 2, , 5];
console.log(a3.flat()); // OUTPUT: [1, 2, 5]

Array.flatmap ()

Возвращает Новый массив объединение квартира () и карта () методы. Помните: ES6 карта () Метод Массив Возвращает новый Массив Применение функции к каждому из его элементов.

Предположим, мы хотим удвоить каждый элемент массива и поместить результат после каждого из этих элементов:

const b1 = [2, 8, 32];
const b2 = b1.map(el => {
  return [el, el * 2];
});
console.log(b2); // OUTPUT: [[2, 4], [8, 16], [32, 64]]
const b3 = b2.flat();
console.log(b3); // OUTPUT: [2, 4, 8, 16, 32, 64]

Использование FlatMap ()

const b4 = [2, 8, 32];
const b5 = b4.flatMap(el => {
  return [el, el * 2];
});
console.log(b5); // OUTPUT: [2, 4, 8, 16, 32, 64]

String.trimstart () и string.trimend ()

String.trim () Удаляет пробелы с самого начала и конца Строка Итак, используя String.trimstart () Удалю пробелы только от начала строки во время использования String.trimend () будет делать, но с пробелами с конца.

const c1 = '      Start here.      ';
const c2 = c1.trimStart();
console.log(c2); // OUTPUT: 'Start here.      ' (with the spaces at the end)
const c3 = '      End here.      ';
const c4 = c3.trimEnd();
console.log(c4); // OUTPUT: '      End here.' (with the spaces at the beggining)

Объект.

Этот метод принимает только ИТЕРИТЕЛЬНО как аргумент, и это создает Объект из списка пар клавиш E.g. производится Object.entries () (ES2017), который используется для преобразования Объект к Массив [ключевых, значение] пар.

Предположим, мы хотим удвоить каждое значение свойств объекта:

const d1 = {
  prop1: 2,
  prop2: 8,
  prop3: 32
};
const d2 = Object.entries(d1);
console.log(d2); // OUTPUT: [["prop1", 2], ["prop2", 8], ["prop3", 32]]

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

const d3 = d2.map(([key, value]) => [key, value * 2]);
console.log(d3); // OUTPUT: [["prop1", 4], ["prop2", 16], ["prop3", 64]]

Теперь, используя PreyentRies () Метод мы будем генерировать Объект С значениями изменены.

const d4 = Object.fromEntries(d3);
console.log(d4);
/* OUTPUT:
{
  prop1: 4,
  prop2: 16,
  prop3: 64,
}
*/

Дополнительный переплет

Это позволяет использовать поймать () пункт без необходимости указывать параметр (исключение).

try {
  // execute code 
} catch {
  // handle error
}

Нет необходимости добавлять параметр на поймать () (по желанию)

try {
  // execute code
} catch (err) {
  // handle error
}

Symbol.prototype.description.

Это позволяет предоставить описание при создании Символ через функцию завода Символ () и доступ к нему через свойство описания.

const e1 = Symbol('Optional description');
console.log(e1.description); // OUTPUT: 'Optional description'

Функция. Прототип.

Он возвращает функцию точно так, как это было определено, включая уныние пространства и комментарии.

Предыдущий ES10

const fn = function /* initial test */ test() {};
fn.toString(); // OUTPUT: 'function test() {}'

Теперь это будет:

const fn = function /* initial test */ test() {};
fn.toString(); // OUTPUT: 'function /* initial test */ test() {}'

Улучшения JSON

Разделитель линии \ u2028 и разделитель абзаца \ U2029 Символы теперь правильно проанализируют вместо синтаксиса при использовании использования Json.carnse ()

Хорошо сформированные json.stringify

Предотвратите json.stringify от возвращения неконформированных строк (в частности, суррогатные кодовые точки u + d800 через u + dfff).