JS 2024


ULASHISH

JavaScript 2024 dagi yangi imkoniyatlar

XususiyatTavsif
Object.groupBy() Obyekt elementlarini callback funksiyasi qaytargan qiymatlarga ko‘ra guruhlaydi
Map.groupBy() Map elementlarini callback funksiyasi qaytargan qiymatlarga ko‘ra guruhlaydi
String isWellFormed() String to‘g‘ri shakllangan bo‘lsa, true qaytaradi
String.toWellFormed() “Yolg‘iz surrogatlar” Unicode U+FFFD bilan almashtirilgan yangi stringni qaytaradi
Promise.withResolvers()
Atomics
waitAsync

Ogohlantirish

Bu imkoniyatlar nisbatan yangi.

Eski brauzerlar uchun muqobil kod (Polyfill) kerak bo‘lishi mumkin


JavaScript Object.groupBy() metodi

Misol

// Create an Array
const fruits = [
  {name:"apples", quantity:300},
  {name:"bananas", quantity:500},
  {name:"oranges", quantity:200},
  {name:"kiwi", quantity:150}
];

// Callback function to Group Elements
function myCallback({ quantity }) {
  return quantity > 200 ? "ok" : "low";
}

// Group by Quantity
const result = Object.groupBy(fruits, myCallback);
O‘zingiz sinab ko‘ring »

Tavsif

Object.groupBy() usuli obyekt elementlarini callback funksiyasidan qaytarilgan String qiymatlariga ko‘ra guruhlaydi.

Object.groupBy() metodi yangi obyekt qaytaradi.

Object.groupBy() metodi asl obyektni o‘zgartirmaydi.

Asl va qaytarilgan obyektdagi elementlar bir xil.

Kelajakdagi o‘zgarishlar asl nusxada ham, qaytarilgan obyektda ham aks etadi.


JavaScript Map.groupBy() metodi

Misol

// Create a Map
const fruits = [
  {name:"apples", quantity:300},
  {name:"bananas", quantity:500},
  {name:"oranges", quantity:200},
  {name:"kiwi", quantity:150}
];

// Callback function to Group Elements
function myCallback({ quantity }) {
  return quantity > 200 ? "ok" : "low";
}

// Group by Quantity
const result = Map.groupBy(fruits, myCallback);
O‘zingiz sinab ko‘ring »

Tavsif

Map.groupBy() usuli Map elementlarini guruhlaydi callback qilish funksiyasidan qaytarilgan string qiymatlariga muvofiq.

Map.groupBy() metodi yangi map qaytaradi.

Map.groupBy() metodi asl obyektni o‘zgartirmaydi.

Asl va qaytarilgan obyektdagi elementlar bir xil.

Kelajakdagi o‘zgarishlar asl nusxada ham, qaytarilgan obyektda ham aks etadi.


Object.groupBy() va Map.groupBy()

Object.groupBy() va Map.groupBy() o‘rtasidagi farq:

Object.groupBy() elementlarni JavaScript obyektiga guruhlaydi.

Map.groupBy() elementlarni Map obyektiga guruhlaydi.



JavaScript stringlarining isWellFormed() metodi

isWellFormed() usuli, agar String yaxshi shakllangan bo‘lsa, true qiymatini qaytaradi.

Aks holda u false qaytaradi.

Agar stringda yolg‘iz surrogatlar bo‘lsa, u to‘g‘ri shakllangan (well-formed) hisoblanmaydi.

Misollar

let text = "Hello world!";
let result = text.isWellFormed();
O‘zingiz sinab ko‘ring »
let text = "Hello World \uD800";
let result = text.isWellFormed();
O‘zingiz sinab ko‘ring »

Yolg‘iz surrogatlar

Yagona surrogat - bu UTF-16 kodlashda belgilarni ifodalash uchun ishlatiladigan haqiqiy surrogat juftligiga kirmaydigan Unicode surrogat kod nuqtasi.


JavaScript stringlarining toWellFormed() metodi

String usuli toWellFormed() yangi stringni qaytaradi, bunda barcha "yolg‘iz surrogatlar" Unicode almashtirish belgisi (U+FFFD) bilan almashtiriladi.

Misollar

let text = "Hello World \uD800";
let result = text.toWellFormed();
O‘zingiz sinab ko‘ring »

JavaScript Promise.withResolvers() metodi

Promise.withResolvers() Promises yaratish va boshqarishni soddalashtiradigan statik usuldir.

Promise.withResolvers() kirishning qulayroq usulini taqdim etadi Promise bilan bog‘liq hal qilish va rad etish funksiyalari uning ijrochi funksiyasidan tashqarida.

An’anaviy new Promise((resolve, reject) => { ... }) konstruktor naqsh o‘rniga, Promise.withResolvers() quyidagilarni o‘z ichiga olgan obyektni qaytaradi:

  • Promise: yangi yaratilgan Promise misoli
  • hal qilish: Promise-ni qiymat bilan bajarish funksiyasi
  • rad etish: Promise-ni sabab bilan rad etish funksiyasi (xato)

Misol

<p id="demo">Waiting...</p>

<script>
const {promise, resolve, reject} = Promise.withResolvers();

// You can now use 'resolve' and 'reject' anywhere
// in your code to control the state of 'promise'.

// Simulate async work
setTimeout(() => {
  const success = Math.random() > 0.5;
  if (success) {
    resolve("Operation successful!");
  } else {
    reject("Operation failed!");
  }
}, 1000);

// Update the UI when the promise finishes
promise
  .then((message) => {
    document.getElementById("demo").innerHTML = message;
  })
  .catch((error) => {
    document.getElementById("demo").innerHTML = error; ;
  });
</script>
O‘zingiz sinab ko‘ring »

Misol tahlili

  • <p id="demo"> dastlab "Waiting..." matnini ko‘rsatadi
  • 1 soniyadan keyin promise bajariladi (resolve) yoki rad etiladi (reject)
  • Natija "demo" elementiga yoziladi

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!