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

Что нового в JavaScript ES2019

Вали Шах Что нового в JavaScript ES2019MANY из нас знают, что существует стандартная процедура для последних релизов JavaScript и комитета позади этого. В этом посте я объясню, кто делает окончательный призыв к любой новой спецификации, какова процедура для этого,

Автор оригинала: FreeCodeCamp Community Member.

Вали Шах

Многие из нас знают, что существует стандартная процедура для последних релизов JavaScript и комитета позади этого. В этом посте я объясню, кто делает окончательный призыв к любой новой спецификации, какова процедура для нее, и что нового в ES2019.

Спецификация языка, который приводит JavaScript, называется Ecmascript. Там есть команда, которая называется Технический комитет 39 [TC39] Это отзывы каждая спецификация перед принятием Отказ

Каждое изменение проходит через процесс с этапами зрелости.

  • Этап 0: Идеи/соломенный
  • Этап 1: Предложений
  • Этап 2: Черновики
  • Этап 3: Кандидаты
  • Этап 4: Закончил/одобрен

Характеристика, которая достигает Этап 4 Скорее всего, будет частью языкового спецификации.

Давайте погрузимся в вещи, которые вновь добавляются в спецификацию под ES2019.

Array.Prototype. {Flat, flatmap}

Array.prototype.flat () Предлагается сглаживать массивы рекурсивно до указанного Глубина и возвращает новый массив.

Синтаксис : Array.prototype.flat (глубина) Глубина – Значение по умолчанию 1 , Используйте Бесконечность сгладить все вложенные массивы.

const numbers = [1, 2, [3, 4, [5, 6]]];
// Considers default depth of 1
numbers.flat(); 
> [1, 2, 3, 4, [5, 6]]
// With depth of 2
numbers.flat(2); 
> [1, 2, 3, 4, 5, 6]
// Executes two flat operations
numbers.flat().flat(); 
> [1, 2, 3, 4, 5, 6]
// Flattens recursively until the array contains no nested arrays
numbers.flat(Infinity)
> [1, 2, 3, 4, 5, 6]

Array.prototype.flatmap () Карты каждого элемента с использованием функции сопоставления и выравнивают результат в новый массив. Он идентичен операции карты, а затем квартира глубина 1.

Синтаксис: Array.prototype.flatmap (обратный вызов) Обратный вызов: Функция Это производит элемент нового массива.

const numbers = [1, 2, 3];
numbers.map(x => [x * 2]);
> [[2], [4], [6]]
numbers.flatMap(x => [x * 2]);
> [2, 4, 6]

Объект.Fromentries.

Объект.Fromentries выполняет обратное Object.entries Отказ Он преобразует список пар клавишных пар в объект.

Синтаксис: Object.fromentries (потенциал) ИТЕРАЛИТЕ: Итализатор, как Массив или Карта или объекты, реализующие Передача протокола

const records = [['name','Mathew'], ['age', 32]];
const obj = Object.fromEntries(records);
> { name: 'Mathew', age: 32}
Object.entries(obj);
> [['name','Mathew'], ['age', 32]];

String.Prototype. {TrimStart, Trimend}

TrimStart () Удаляет пробел из начала строки и Trimend () Удаляет пробел из конца строки.

const greeting = ` Hello Javascript! `;
greeting.length;
> 19
greeting = greeting.trimStart();
> 'Hello Javascript! '
greeting.length;
> 18
greeting = 'Hello World!   ';
greeting.length;
> 15
greeting = greeting.trimEnd();
> 'Hello World!'
greeting.length;
> 12

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

До нового спецификации потребовалось иметь вариабельность исключения связаться с A поймать пункт. ES2019 сделал его необязательным.

// Before
try {
   ...
} catch(error) {
   ...
}
// After
try {
   ...
} catch {
   ...
}

Эта функция полезна, когда вы хотите полностью игнорировать ошибку. Лучшая практика – рассмотреть возможность обработки ошибки.

Есть случаи, когда вы знаете возможную ошибку, которая может вызвать операции. Вы можете игнорировать обработку блоков Catch.

JSON ⊂ Ecmascript

Разделитель линии (U + 2028) и символы сепаратора абзаца (U + 2029) теперь допускаются в строковых литералах. Ранее они рассматривались как линии линейных терминаторов и привели к Ошибка синтаксиса Исключения.

// Produces invalid string before ES2019
eval('"\u2028"');
// Valid in ES2019
eval('"\u2028"');

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

Вместо непарных суррогатных кодовых точек, приводящих к одному UTF-16 Кодовые единицы, ES10 представляет их с помощью \ \ escape.

JSON.stringify('\uD800');
> '"�"'
JSON.stringify('\uD800');
> '"\\ud800"'

Функция .Prototype.tostring.

.нанизывать () Теперь возвращает точные ломтики текста исходного кода, включая пробелы и комментарии.

function /* a comment */ foo () {}
// Previously:
foo.toString();
> 'function foo() {}'
             ^ no comment
                ^ no space
// Now:
foo.toString();
> 'function /* comment */ foo () {}'

Symbol.prototype.description.

Только для чтения свойство, которое возвращает дополнительное описание A Символ Объект:

Symbol('desc').toString();
> "Symbol(desc)"
Symbol('desc').description;  
> "desc"
Symbol('').description;      
> ""
Symbol().description;
> undefined

Заключение

TC39 сохраняет все предстоящие спецификации, которые находятся на сцене> 1 цена SS h все. Как Разработчик, важно сохранить вкладки на то, что происходит вокруг. Есть много интересных вещей, которые придумывают Li ke Статические и частные методы и поля в классах, наследие. X и т. Д. Узнайте все новые вещи, которые находятся в предложении STA гек h все.

код = соревнование FFEE + департамент развитие

Вот несколько интересных тем:

Оригинал: “https://www.freecodecamp.org/news/whats-new-in-javascript-es2019-8af4390d8494/”