Skip to content

ECMAScript 2024

JavaScript 2024 dagi yangi xususiyatlar

XususiyatTavsif
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()

js
// 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()

js
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 guruhlaydi
  • Map.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.

js
let text = 'Hello world!'
let result = text.isWellFormed()
js
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.

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