ECMAScript 2024
JavaScript 2024 dagi yangi xususiyatlar
| Xususiyat | Tavsif |
|---|---|
Object.groupBy() | Callback funksiyasidan qaytarilgan qiymatlarga ko'ra obyekt elementlarini guruhlaydi |
Map.groupBy() | Callback funksiyasidan qaytarilgan qiymatlarga ko'ra map elementlarini guruhlaydi |
String isWellFormed() | Satr to'g'ri shakllanganligini tekshirib true qaytaradi |
String.toWellFormed() | "Yolg'iz surrogatlar" Unicode U+FFFD bilan almashtirilgan yangi satr qaytaradi |
Promise.withResolvers() | Promise yaratish va boshqarishni soddalashtiradi |
Ogohlantirish
Bu xususiyatlar nisbatan yangi. Eski brauzerlar muqobil kod (Polyfill) talab qilishi mumkin.
JavaScript Object.groupBy()
// Massiv yaratish
const fruits = [
{ name: 'apples', quantity: 300 },
{ name: 'bananas', quantity: 500 },
{ name: 'oranges', quantity: 200 },
{ name: 'kiwi', quantity: 150 }
]
// Elementlarni guruhlash uchun callback funksiya
function myCallback({ quantity }) {
return quantity > 200 ? 'ok' : 'low'
}
// Miqdor bo'yicha guruhlash
const result = Object.groupBy(fruits, myCallback)Tavsif
Object.groupBy() metodi callback funksiyasidan qaytarilgan satr qiymatlariga ko'ra obyekt elementlarini guruhlaydi. Object.groupBy() metodi yangi obyekt qaytaradi. Object.groupBy() metodi asl obyektni o'zgartirmaydi.
Eslatma
Asl va qaytarilgan obyektdagi elementlar bir xil. Kelajakdagi o'zgarishlar asl va qaytarilgan obyektda aks etadi.
JavaScript Map.groupBy()
const fruits = [
{ name: 'apples', quantity: 300 },
{ name: 'bananas', quantity: 500 },
{ name: 'oranges', quantity: 200 },
{ name: 'kiwi', quantity: 150 }
]
function myCallback({ quantity }) {
return quantity > 200 ? 'ok' : 'low'
}
const result = Map.groupBy(fruits, myCallback)Tavsif
Map.groupBy() metodi callback funksiyasidan qaytarilgan satr qiymatlariga ko'ra map elementlarini guruhlaydi. Map.groupBy() metodi yangi map qaytaradi. Map.groupBy() metodi asl obyektni o'zgartirmaydi.
Object.groupBy() va Map.groupBy() o'rtasidagi farq
Object.groupBy()elementlarni JavaScript obyektiga guruhlaydiMap.groupBy()elementlarni Map obyektiga guruhlaydi
JavaScript String isWellFormed()
isWellFormed() metodi satr to'g'ri shakllanganligini tekshirib true qaytaradi. Aks holda false qaytaradi. Satr yolg'iz surrogatlar o'z ichiga olsa to'g'ri shakllangan emas.
let text = 'Hello world!'
let result = text.isWellFormed()let text = 'Hello World \uD800'
let result = text.isWellFormed()Yolg'iz surrogatlar
Yolg'iz surrogat — UTF-16 kodlashda belgilarni ifodalash uchun ishlatiladigan yaroqli surrogat juftligining bir qismi bo'lmagan Unicode surrogat kod nuqtasi.
JavaScript String toWellFormed()
String metodi toWellFormed() barcha "yolg'iz surrogatlar" Unicode almashtirish belgisi (U+FFFD) bilan almashtirilgan yangi satr qaytaradi.
let text = 'Hello World \uD800'
let result = text.toWellFormed()JavaScript Promise.withResolvers()
Promise.withResolvers() Promise yaratish va boshqarishni soddalashtiruvchi statik metoddir. An'anaviy new Promise((resolve, reject) => { ... }) konstruktor namunasi o'rniga, Promise.withResolvers() quyidagilarni o'z ichiga olgan obyekt qaytaradi:
- promise: Yangi yaratilgan Promise instansiyasi
- resolve: Promise ni qiymat bilan bajarish funksiyasi
- reject: Promise ni sabab (xato) bilan rad etish funksiyasi
<p id="demo">Kutilmoqda...</p>
<script>
const { promise, resolve, reject } = Promise.withResolvers()
setTimeout(() => {
const success = Math.random() > 0.5
if (success) {
resolve('Amaliyot muvaffaqiyatli!')
} else {
reject('Amaliyot muvaffaqiyatsiz!')
}
}, 1000)
promise
.then((message) => {
document.getElementById('demo').innerHTML = message
})
.catch((error) => {
document.getElementById('demo').innerHTML = error
})
</script>