Skip to content

ECMAScript 2018

JavaScript 2018 dagi yangi xususiyatlar

XususiyatTavsif
Asinxron iteratsiyafor/of sikllarida await kalit so'ziga ruxsat beradi
Promise.finally()Promise "bajarilgan" yoki "rad etilgan" bo'lganda funksiyani rejalashtiradi
Massiv rest elementlariMassivni destruktizatsiya qilish va qolganlarini yig'ish imkonini beradi
Obyekt rest xususiyatlariObyektni destruktizatsiya qilish va qolganlarini yig'ish imkonini beradi
Umumiy xotiraDasturning turli qismlariga bir xil xotiraga kirishga ruxsat beradi

2018 dagi yangi RegExp xususiyatlari

XususiyatTavsif
/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.

js
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.

js
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:

js
let a, rest
const arr1 = [1, 2, 3, 4, 5, 6, 7, 8]

;[a, ...rest] = arr1
js
let a, b, rest
const arr1 = [1, 2, 3, 4, 5, 6, 7, 8]

;[a, b, ...rest] = arr1

JavaScript obyekt rest xususiyatlari

Bu bizga obyektni destruktizatsiya qilish va qolganlarini yangi obyektga yig'ish imkonini beradi:

js
const car = { type: 'Fiat', model: '500', color: 'white' }

let { type, model, color } = car

Yangi JavaScript RegExp xususiyatlari

ECMAScript 2018 4 ta yangi RegExp xususiyatini qo'shdi:

  • /s (dotAll) flagi
  • Unicode xususiyat qochlari (\p{...})
  • Lookbehind tasdiqlari (?<=y)x va (?<!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.

js
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.

js
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.

js
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.

js
let text = 'Hello W3Schools'

let pattern = /(?<!Hello )W3Schools/
let result = pattern.test(text)

RegExp nomlangan ushlash guruhlari

js
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.lastName

Tushuntirish

  • (?<firstName>\w+) so'zni ushlaydi va firstName deb nomlaydi
  • (?<lastName>\w+) xuddi shunday qiladi lastName uchun
  • text.match() groups xususiyatiga ega massiv qaytaradi
  • match.groups obyekt 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.