ECMAScript 2022
JavaScript 2022 dagi yangi xususiyatlar
Barcha zamonaviy brauzerlarda 2023-yil mart dan beri qo'llab-quvvatlanadi.
| Xususiyat | Tavsif |
|---|---|
Array at() | Massivdan indekslangan elementni qaytaradi |
String at() | Satrdan indekslangan elementni qaytaradi |
RegExp /d | Pastki satr mosliklarini bajaradi |
Object.hasOwn() | Xususiyat obyektning o'z xususiyati ekanligini tekshiradi |
error.cause | Xato ortidagi sababni ko'rsatishga imkon beradi |
await import | JavaScript modullariga ishga tushishdan oldin import talab qiluvchi resurslarni kutishga imkon beradi |
| Klass maydon e'lonlari | Xususiyatlarni to'g'ridan-to'g'ri klass ichida aniqlashga imkon beradi |
| Maxfiy metodlar va maydonlar | Maxfiy xususiyatlarga ruxsat beradi (#metod va #maydon) |
JavaScript Array at()
ES2022 massiv metodi at() ni taqdim etdi:
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:
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.
let text = 'aaaabb'
let result = text.match(/(aa)(bb)/d)RegExp modifikatorlari katta-kichik harfni sezmaydigan va boshqa global qidiruvlarni belgilash uchun ishlatiladi:
| Modifikator | Tavsif |
|---|---|
i | Katta-kichik harfni sezmaydigan moslik bajaradi |
g | Global moslik bajaradi (barchasini topadi) |
m | Ko'p qatorli moslik bajaradi |
d | Pastki 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.
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.
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:
import { myData } from './myData.js'
const data = await myData()JavaScript klass maydon e'lonlari
class Hello {
counter = 0 // Klass maydoni
}
const myClass = new Hello()
let x = myClass.counterJavaScript maxfiy metodlar va maydonlar
class Hello {
#counter = 0 // Maxfiy maydon
#myMethod() {} // Maxfiy metod
}
const myClass = new Hello()
let x = myClass.#counter // Xato
myClass.#myMethod() // Xato