Автор оригинала: FreeCodeCamp Community Member.
Flavio H. Freitas
Наши друзья из TC39 имеют выпущен Новые обновления для нашего любимого языка JavaScript.
Если вы хотите следить за процессом новых выпусков Комитетом, вы можете получить доступ к этому ссылка Отказ Процесс утверждения и внесения изменений проходит через пять этапов:
- Этап 0: соломенный человек – разрешить вводить в спецификацию
- Этап 1: предложение – сделать дело для дополнения; Описать форму раствора; Определите потенциальные проблемы
- Этап 2: Проект – точно опишите синтаксис и семантику, используя формальный спецификационный язык
- Этап 3: кандидат – укажите, что дальнейшее уточнение потребует отзывов от реализации и пользователей
- Этап 4: Закончено – укажите, что добавление готово к включению в формальный стандарт Ecmascript
Больше деталей можно увидеть здесь Отказ Если вы хотите узнать больше о предыдущих изменениях, проверить ES6 , ES7 и ES8 Отказ
Итак, давайте посмотрим, что они добавили или обновили в прошлом году:
1. Множество изменений Regex
У нас есть четыре модификации для Regex. Давайте посмотрим на них:
S (Dotall) Флаг для регулярных выражений
При использовании регулярных выражений вы ожидаете, что точка Отказ
соответствует одному символу, но это не всегда верно. Одним из исключений является с линейными символами терминатора:
/hello.bye/.test('hello\nbye') // prints false
Решение является новым флагом/с (из сингловой линии):
/hello.bye/s.test('hello\nbye') // prints true
Regex по имени захватывает группы
Это старый способ получить год, месяц и день с свидания:
const REGEX = /([0-9]{4})-([0-9]{2})-([0-9]{2});const results = REGEX.exec('2018-07-12');console.log(results[1]); // prints 2018console.log(results[2]); // prints 07console.log(results[3]); // prints 12
И если вы работаете с длинным Regex, вы знаете, как усердно отслеживать группы, скобки и индексы. С новой по имени Capture Group можно:
const REGEX = /(?[0-9]{4})-(? [0-9]{2})-(? [0-9]{2});const results = REGEX.exec('2018-07-12');console.log(results.groups.year); // prints 2018console.log(results.groups.month); // prints 07console.log(results.groups.day); // prints 12
Regex Bookbehing Утверждения
Есть две версии взгляда за упор: положительные и отрицательные.
а) положительный (? < = …)
'$foo #foo @foo'.replace(/(?<=#)foo/g, 'XXX')// prints $foo #XXX @foo
Это (? <= #) fo
o/g Regex говорит, что слово должно начинаться с #, и он не вносит вклад в общую сопоставленную строку (поэтому он не заменит символ #.
б) отрицательный (? < ! …)
'$foo #foo @foo'.replace(/(?
Напротив, это утверждение гарантирует, что он не запускается с #.
Regex OneCode Свойство уходит
Теперь мы можем искать персонажей, упомянув свой свойство символов Unicode внутри \п{}
/\p{Script=Greek}/u.test('μ') // prints true
Вы можете проверить больше свойств, нажав здесь Отказ
2. Отдых/складывать свойства
Оператор остальных (...)
копирует оставшиеся имущественные ключи, которые не были упомянуты. Давайте посмотрим на пример:
const values = {a: 1, b: 2, c: 3, d: 4};const {a, ...n} = values;console.log(a); // prints 1console.log(n); // prints {b: 2, c: 3, d: 4}
3. Обещайте. Прототип наконец
Этот новый обратный вызов всегда будет выполнен, если поймут поймут или нет.
fetch('http://website.com/files').then(data => data.json()).catch(err => console.error(err)).finally(() => console.log('processed!'))
4. асинхронная итерация
Наконец!
Теперь мы можем использовать ждать
на наших декларациях петлей.
for await (const line of readLines(filePath)) { console.log(line);}
И это все изменения с этого года. Давайте дождаться, чтобы увидеть, что они принесут нам в следующем году.
Если вам понравилось эту статью, обязательно понравится мне много хлопов – это означает мир писателю? И Ф. Подписывайтесь на меня Если вы хотите прочитать больше статей о культуре, технологиях и стартапах.
Flávio H. de Freitas Это предприниматель, инженер, технический любовник, мечтатель и путешественник. Работал как CТО в Бразилия , Силиконовая долина и Европа Отказ