JS 2024
JavaScript 2024 dagi yangi imkoniyatlar
| Xususiyat | Tavsif | |
|---|---|---|
| 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!
