Skip to content

ECMAScript 2022

JavaScript 2022 dagi yangi xususiyatlar

Barcha zamonaviy brauzerlarda 2023-yil mart dan beri qo'llab-quvvatlanadi.

XususiyatTavsif
Array at()Massivdan indekslangan elementni qaytaradi
String at()Satrdan indekslangan elementni qaytaradi
RegExp /dPastki satr mosliklarini bajaradi
Object.hasOwn()Xususiyat obyektning o'z xususiyati ekanligini tekshiradi
error.causeXato ortidagi sababni ko'rsatishga imkon beradi
await importJavaScript modullariga ishga tushishdan oldin import talab qiluvchi resurslarni kutishga imkon beradi
Klass maydon e'lonlariXususiyatlarni to'g'ridan-to'g'ri klass ichida aniqlashga imkon beradi
Maxfiy metodlar va maydonlarMaxfiy xususiyatlarga ruxsat beradi (#metod va #maydon)

JavaScript Array at()

ES2022 massiv metodi at() ni taqdim etdi:

js
const fruits = ['Banana', 'Orange', 'Apple', 'Mango']
let fruit = fruits.at(2)

at() metodi massivdan indekslangan elementni qaytaradi. at() metodi [] bilan bir xil natija qaytaradi.

Eslatma

Ko'pgina tillar [-1] kabi manfiy indekslashga ruxsat beradi — bu obyekt / massiv / satr oxiridan elementlarga kirishga imkon beradi. JavaScript-da bu mumkin emas, chunki [] massivlar va obyektlarga kirishda ishlatiladi. obj[-1] obyektning oxirgi xususiyatiga emas, balki -1 kalitining qiymatiga murojaat qiladi. at() metodi bu muammoni hal qilish uchun ES2022 da kiritildi.


JavaScript String at()

ES2022 satr metodi at() ni taqdim etdi:

js
const name = 'W3Schools'
let letter = name.at(2)

at() metodi satrdan indekslangan elementni qaytaradi. at() metodi [] bilan bir xil natija qaytaradi.


RegExp d modifikatori

ES2022 moslik boshlanishi va oxirini ifodalash uchun /d modifikatorini qo'shdi.

js
let text = 'aaaabb'
let result = text.match(/(aa)(bb)/d)

RegExp modifikatorlari katta-kichik harfni sezmaydigan va boshqa global qidiruvlarni belgilash uchun ishlatiladi:

ModifikatorTavsif
iKatta-kichik harfni sezmaydigan moslik bajaradi
gGlobal moslik bajaradi (barchasini topadi)
mKo'p qatorli moslik bajaradi
dPastki satr mosliklarini bajaradi (ES2022 da yangi)

Object hasOwn

ES2022 xususiyat obyektning o'z xususiyati ekanligini tekshirish uchun xavfsiz usul taqdim etadi. Object.hasOwn() Object.hasOwnProperty() ga o'xshaydi, lekin barcha obyekt turlarini qo'llab-quvvatlaydi.

js
Object.hasOwn(myObject, age)

Error Cause (Xato sababi)

ECMAScript 2022 dan boshlab, Error konstruktori (va uning TypeError, SyntaxError kabi quyi sinflari) ixtiyoriy {cause} xususiyatini qo'llab-quvvatlaydi. Bu sizga zanjir xatolarni yaratishga imkon beradi — bu yerda bitta xato boshqasini sabab sifatida o'z ichiga oladi.

js
try {
  try {
    JSON.parse('blablablabla')
  } catch (err) {
    throw new Error('JSON yuklash muvaffaqiyatsiz', { cause: err })
  }
} catch (err) {
  let text = err.name + ' ' + err.message
  document.getElementById('demo').innerHTML = text
}

JavaScript await import

JavaScript modullari endi ishga tushishdan oldin import talab qiluvchi resurslarni kutishi mumkin:

js
import { myData } from './myData.js'

const data = await myData()

JavaScript klass maydon e'lonlari

js
class Hello {
  counter = 0 // Klass maydoni
}
const myClass = new Hello()

let x = myClass.counter

JavaScript maxfiy metodlar va maydonlar

js
class Hello {
  #counter = 0 // Maxfiy maydon
  #myMethod() {} // Maxfiy metod
}
const myClass = new Hello()

let x = myClass.#counter // Xato
myClass.#myMethod() // Xato