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.