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

Автор: admin от 10-02-2019, 16:05, посмотрело: 31

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



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



Спецификация языка, управляющая javascript, называется ECMAScript. Существует группа под названием технический комитет 39 [TC39], которая рассматривает каждую спецификацию перед принятием.

итерируемый протокол.



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


Optional Catch Binding



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



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


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



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



JSON ? ECMAScript



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



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


Хорошо сформированный JSON.stringify



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



JSON.stringify('uD800');
> '"?"'
JSON.stringify('uD800');
> '"ud800"'


Function.prototype.toString



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



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


Symbol.prototype.description



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



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


Заключение



Есть еще много других интересных вещей таких, как статические и приватные методы и поля в классах, Legacy RegEx и т.д. Разработчику важно следить за появлением новых технологий, улучшением старых и использовать это в работе.



Будет полезно почитать предыдущие версии: ES2015 ES2016 ES2017 ES2018

Источник: Хабр / Интересные публикации

Категория: Программирование

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *