ECMAScript 2018
JavaScript 2018 dagi yangi xususiyatlar
| Xususiyat | Tavsif |
|---|---|
| Asinxron iteratsiya | for/of sikllarida await kalit so'ziga ruxsat beradi |
Promise.finally() | Promise "bajarilgan" yoki "rad etilgan" bo'lganda funksiyani rejalashtiradi |
| Massiv rest elementlari | Massivni destruktizatsiya qilish va qolganlarini yig'ish imkonini beradi |
| Obyekt rest xususiyatlari | Obyektni destruktizatsiya qilish va qolganlarini yig'ish imkonini beradi |
| Umumiy xotira | Dasturning turli qismlariga bir xil xotiraga kirishga ruxsat beradi |
2018 dagi yangi RegExp xususiyatlari
| Xususiyat | Tavsif |
|---|---|
/s | . (nuqta) metabelgisi qator terminatorlariga mos kelishga ruxsat beradi |
\p{} | Unicode belgi xususiyati bilan belgilarga mos keladi |
(?<=y) | (?<=y)x — "x" dan oldin "y" kelsa "x" ga mos keladi |
(?<!y) | (?<!y)x — "x" dan oldin "y" kelmasa "x" ga mos keladi |
(?<name>) | Matnni ushlaydi va nomlaydi (yorliqlaydi) |
ECMAScript 2018 barcha zamonaviy brauzerlarda 2020-yil iyun dan beri qo'llab-quvvatlanadi.
JavaScript asinxron iteratsiya
ECMAScript 2018 asinxron iteratorlar va iterabllarni qo'shdi. Asinxron iterabllar bilan for/of sikllarida await kalit so'zini ishlatishimiz mumkin.
for await () {}JavaScript Promise.finally()
ECMAScript 2018 Promise obyektining to'liq amalga oshirilishini Promise.finally bilan yakunladi. Promise.finally() promise muvaffaqiyatli hal qilingan yoki rad etilganda bajariladigan funksiyani aniqlaydi.
let myPromise = new Promise()
myPromise.then()
myPromise.catch()
myPromise.finally()JavaScript massiv rest elementlari
ECMAScript 2018 rest operatorini (...) qo'shdi. Rest operatori (...) massivni destruktizatsiya qilish va qolganlarini yig'ish imkonini beradi:
let a, rest
const arr1 = [1, 2, 3, 4, 5, 6, 7, 8]
;[a, ...rest] = arr1let a, b, rest
const arr1 = [1, 2, 3, 4, 5, 6, 7, 8]
;[a, b, ...rest] = arr1JavaScript obyekt rest xususiyatlari
Bu bizga obyektni destruktizatsiya qilish va qolganlarini yangi obyektga yig'ish imkonini beradi:
const car = { type: 'Fiat', model: '500', color: 'white' }
let { type, model, color } = carYangi JavaScript RegExp xususiyatlari
ECMAScript 2018 4 ta yangi RegExp xususiyatini qo'shdi:
- /s (dotAll) flagi
- Unicode xususiyat qochlari (
\p{...}) - Lookbehind tasdiqlari
(?<=y)xva(?<!y)x - Nomlangan ushlash guruhlari
RegExp /s flagi
s (dotAll) flagi . (nuqta) metabelgisiga istalgan belgiga, jumladan qator terminator belgilariga (masalan \n, \r, \u2028, \u2029) mos kelishga ruxsat beradi. s siz . qator terminatorlariga mos kelmaydi.
let text = 'Line\nLine.'
let pattern = /Line./gs
let result = text.match(pattern)RegExp \p metabelgisi
\p{Unicode xususiyati} metabelgisi Unicode belgi xususiyatiga ega istalgan belgiga mos keladi.
let text = 'Hello 😜'
let pattern = /\p{RGI_Emoji}/v
let result = pattern.test(text)RegExp lookbehind
(?<=y)x — "x" dan oldin "y" kelsa "x" ga mos keladi.
let text = 'Hello W3Schools'
let pattern = /(?<=Hello )W3Schools/
let result = pattern.test(text)Manfiy lookbehind
(?<!y)x — "x" dan oldin "y" kelmasa "x" ga mos keladi.
let text = 'Hello W3Schools'
let pattern = /(?<!Hello )W3Schools/
let result = pattern.test(text)RegExp nomlangan ushlash guruhlari
const text = 'Name: John Doe'
// Nomlangan ushlash guruhlarini ishlatish
const regex = /(?<firstName>\w+) (?<lastName>\w+)/
const match = text.match(regex)
let fName = match.groups.firstName
let lName = match.groups.lastNameTushuntirish
(?<firstName>\w+)so'zni ushlaydi va firstName deb nomlaydi(?<lastName>\w+)xuddi shunday qiladi lastName uchuntext.match()groups xususiyatiga ega massiv qaytaradimatch.groupsobyekt qaytaradi:{ firstName: 'John', lastName: 'Doe' }
Ushlash guruhlari bilan regulyar ifodadan foydalanganda, satrning match() metodi groups xususiyatini o'z ichiga olgan natija massivini qaytaradi. Bu groups xususiyati nomlangan ushlash guruhlari uchun mosliklarni saqlaydigan obyektdir.
JavaScript threadlari
JavaScript-da threadlar yaratish uchun Web Workers API ishlatiladi. Worker threadlari asosiy dastur bajarilishni davom ettirishi uchun fon rejimida kodni bajarish uchun ishlatiladi. Worker threadlari asosiy dastur bilan bir vaqtda ishlaydi.
JavaScript umumiy xotira
Umumiy xotira threadlarga (dasturning turli qismlariga) bir xil xotiradagi bir xil ma'lumotlarga kirish va yangilash imkonini beruvchi xususiyatdir. Threadlar o'rtasida ma'lumot uzatish o'rniga, ma'lumotlar saqlangan xotiraga ko'rsatgich bo'lgan SharedArrayBuffer obyektini uzatishingiz mumkin.
SharedArrayBuffer
SharedArrayBuffer obyekti ArrayBuffer obyektiga o'xshash belgilangan uzunlikdagi xom ikkilik ma'lumotlar buferini ifodalaydi.
