JS 2025
JavaScript 2025 dagi yangi imkoniyatlar
2025-yil iyun oyida chiqarilgan ECMAScript standartining 16-nashri JavaScript-ni yanada o‘qilishi va samaraliroq qilish uchun bir nechta yaxshilanishlarni o‘z ichiga oladi.
ES2025 dagi yangi Set imkoniyatlari
JavaScript 2025 Set amallari uchun intersection(), union() va difference() kabi tayyor (built-in) metodlarni o‘z ichiga oladi, bu esa qo‘lda sikl yozish yoki uchinchi tomon kutubxonalariga ehtiyojni yo‘q qiladi.
| Xususiyat | Tavsif | |
|---|---|---|
| union() | Ikki to‘plamning birlashuvini qaytaradi | |
| intersection() | Ikki to‘plamning kesishishini qaytaradi | |
| difference() | Ikki Set orasidagi farqni qaytaradi | |
| symmetricDifference() | To‘plamlar orasidagi nosimmetrik farqni qaytaradi | |
| isSubsetOf() | Agar ushbu Set berilgan Setning qism to‘plami (subset) bo‘lsa, true qiymat qaytaradi | |
| isSupersetOf() | Agar ushbu Set berilgan Setni to‘liq o‘z ichiga olsa (superset), true qiymat qaytaradi | |
| isDisjointFrom() | Agar ushbu to‘plamda berilgan to‘plamda hech qanday element bo‘lmasa, true qiymatini qaytaradi |
ES2025 dagi yangi Iterator yordamchilari
Iterator obyektining joriy etilishi kechiktirilgan hisoblash (lazy evaluation) imkoniyatiga ega funksional interfeysni taqdim etadi va dasturchilarga massivlar kabi turli iteratorlarni o‘rab olish imkonini beradi.
Iteratorlar uchun yangi funksional operatorlar to‘plami (.map(), .filter() va .take() kabi) kechiktirilgan hisoblash (lazy evaluation) imkonini beradi, bu esa katta ma’lumotlar oqimlari bilan ishlashda unumdorlikni oshiradi.
| funksiyasi | Tavsif |
|---|---|
| drop() | Qolganlarini berishdan oldin belgilangan miqdordagi elementlarni o‘tkazib yuboradigan iteratorni qaytaradi |
| every() | Barcha elementlar test funksiyasini qanoatlantirsa, true qaytaradi |
| filter() | Filtr funksiyasini qondiradigan elementlarni o‘z ichiga olgan iteratorni qaytaradi |
| find() | Sinov funksiyasini qondiradigan birinchi elementni qaytaradi |
| flatMap() | Har bir elementni xaritalash va natijalarni tekislash orqali iteratorni qaytaradi |
| forEach() | Iteratordagi har bir element uchun funksiyani bir marta bajaradi. |
| from() | takrorlanadigan obyektdan iterator obyektini yaratadi |
| map() | Map funksiyasi orqali o‘zgartirilgan barcha elementlarga ega iteratorni qaytaradi |
| reduce() | Uni bitta qiymatga kamaytirish uchun har bir elementga nisbatan reduktor funksiyasini qo‘llaydi |
| some() | Kamida bitta element test funksiyasini qanoatlantirsa, true qaytaradi |
| take() | Belgilangan miqdordagi elementlarni beradigan iteratorni qaytaradi |
ES2025 dagi boshqa yangi imkoniyatlar
| Xususiyat | Tavsif | |
|---|---|---|
| RegExp /v flag | /u (unicode) bayrog‘iga "yangilanish" | |
| RegExp.escape() | Regex belgilari qochib ketgan stringni qaytaradi | |
| Float16Array | 16 bitli suzuvchi nuqtali sonlarni saqlaydigan tiplangan massiv (Typed Array) | |
| Math.f16round() | Eng yaqin 16 bitli suzuvchi nuqtali sonni qaytaradi | |
| Promise.try() | Promise rad etilishlarini qayta ishlash uchun promise zanjirini boshlaydi | |
| Import Attributes | import operatorlarida import atributlaridan foydalanishga ruxsat beriladi |
Ogohlantirish
Bu imkoniyatlar nisbatan yangi.
Eski brauzerlar uchun muqobil kod (Polyfill) kerak bo‘lishi mumkin.
JavaScript Set union() metodi
union() metodi ikkita setning birlashmasini (union) qaytaradi.
union() metodi ushbu setdagi, argument setidagi yoki ikkalasidagi elementlarni o‘z ichiga olgan yangi setni qaytaradi:

Misol
const A = new Set(['a','b','c']);
const B = new Set(['b','c','d']);
const C = A.union(B);
O‘zingiz sinab ko‘ring »
union() metodi June 2024 dan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 122 |
Edge 122 |
Firefox 127 |
Safari 17 |
Opera 108 |
| Feb 2024 | Feb 2024 | Jun 2024 | Sep 2023 | Mar 2024 |
JavaScript Set intersection() metodi
intersection() metodi ikkita setning kesishmasini (intersection) qaytaradi.
intersection() metodi ushbu setda hamda argument setida mavjud bo‘lgan elementlardan iborat yangi setni qaytaradi:

Misol
const A = new Set(['a','b','c']);
const B = new Set(['b','c','d']);
const C = A.intersection(B);
O‘zingiz sinab ko‘ring »
intersection() metodi June 2024 dan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 122 |
Edge 122 |
Firefox 127 |
Safari 17 |
Opera 108 |
| Feb 2024 | Feb 2024 | Jun 2024 | Sep 2023 | Mar 2024 |
JavaScript Set difference() metodi
difference() metodi ikkita Set orasidagi farqni (difference) qaytaradi.
difference() metodi ushbu setda bor, lekin argument setida bo‘lmagan elementlardan iborat yangi setni qaytaradi:

Misol
const A = new Set(['a','b','c']);
const B = new Set(['b','c','d']);
const C = A.difference(B);
O‘zingiz sinab ko‘ring »
difference() metodi June 2024 dan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 122 |
Edge 122 |
Firefox 127 |
Safari 17 |
Opera 108 |
| Feb 2024 | Feb 2024 | Jun 2024 | Sep 2023 | Mar 2024 |
JavaScript Set symmetricDifference() metodi
symmetricDifference() metodi setlar orasidagi simmetrik farqni (symmetric difference) qaytaradi.
symmetricDifference() metodi ushbu setda yoki argument setida bor, lekin ikkalasida ham bir vaqtda bo‘lmagan elementlardan iborat yangi setni qaytaradi:

Misol
const A = new Set(['a','b','c']);
const B = new Set(['b','c','d']);
const C = A.symmetricDifference(B);
O‘zingiz sinab ko‘ring »
symmetricDifference() metodi June 2024 dan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 122 |
Edge 122 |
Firefox 127 |
Safari 17 |
Opera 108 |
| Feb 2024 | Feb 2024 | Jun 2024 | Sep 2023 | Mar 2024 |
JavaScript Set isSubsetOf() metodi
isSubsetOf() usuli trueni qaytaradi
agar ushbu to‘plamdagi barcha elementlar argumentlar to‘plamidagi elementlar bo‘lsa:

Misol
const A = new Set(['a','b','c']);
const B = new Set(['b','c','d']);
let answer = A.isSubsetOf(B);
O‘zingiz sinab ko‘ring »
isSubsetOf() usuli 2024-yil iyun oyidan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 122 |
Edge 122 |
Firefox 127 |
Safari 17 |
Opera 108 |
| Feb 2024 | Feb 2024 | Jun 2024 | Sep 2023 | Mar 2024 |
JavaScript Set isSupersetOf() metodi
Agar argument setidagi barcha elementlar ushbu setda ham bo‘lsa, isSupersetOf() metodi true qaytaradi:

Misol
const A = new Set(['a','b','c']);
const B = new Set(['b','c','d']);
let answer = A.isSupersetOf(B);
O‘zingiz sinab ko‘ring »
isSupersetOf() usuli 2024-yil iyun oyidan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 122 |
Edge 122 |
Firefox 127 |
Safari 17 |
Opera 108 |
| Feb 2024 | Feb 2024 | Jun 2024 | Sep 2023 | Mar 2024 |
JavaScript Set isDisjointFrom() metodi
isDisjointFrom() metodi agar ushbu setning argument seti bilan umumiy elementlari bo‘lmasa, true qaytaradi:

Misol
const A = new Set(['a','b','c']);
const B = new Set(['b','c','d']);
let answer = A.isDisjointFrom(B);
O‘zingiz sinab ko‘ring »
Set.isDisjointFrom() metodi June 2024 dan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 122 |
Edge 122 |
Firefox 127 |
Safari 17 |
Opera 108 |
| Feb 2024 | Feb 2024 | Jun 2024 | Sep 2023 | Mar 2024 |
Iterator.from() metodi
Iterator.from()
mavjud takrorlanadigan yoki iterator obyektidan iterator obyektini yaratadi.
Misol
// Create an iterator
const myIterator = Iterator.from([1, 2, 3]);
// Iterate over the elements
let text = "";
for (const x of myIterator) {
text += x;
}
O‘zingiz sinab ko‘ring »
drop() metodi
drop() usuli qolganlarini berishdan oldin belgilangan miqdordagi elementlarni o‘tkazib yuboradigan yangi iteratorni qaytaradi.
Misol
// Create an iterator
const myIterator = Iterator.from([1, 2, 3, 4, 5, 6]);
// Remove the first five
const firstFive = myIterator.drop(5);
O‘zingiz sinab ko‘ring »
every() metodi
every(fn) usuli
iteratordagi barcha elementlar taqdim etilgan test funksiyasiga javob bersa, true qaytaradi.
Misol
// Create an Iterator
const myIterator = Iterator.from("123456789");
// Is every Element greater than 7?
let result = myIterator.every(x => x > 7);
O‘zingiz sinab ko‘ring »
filter() metodi
filter() usuli
filtr funksiyasini qondiradigan elementlarni o‘z ichiga olgan yangi iteratorni qaytaradi.
Misol
// Create an iterator
const myIterator = Iterator.from([32, 33, 16, 40]);
// Filter the iterator
const filteredIterator = myIterator.filter(x => x > 18);
O‘zingiz sinab ko‘ring »
find() usuli
find(fn) usuli
test funksiyasini qondiradigan birinchi elementni qaytaradi.
Misol
// Create an iterator
const myIterator = Iterator.from([3, 10, 18, 30, 20]);
// Find first greater than 18
let result = myIterator.find(x => x > 18);
O‘zingiz sinab ko‘ring »
flatMap() metodi
flatMap() usuli
har bir elementni xaritalash va keyin tekislash orqali yangi iteratorni qaytaradi
natijalarni bitta iteratorga aylantiradi.
Misol
// Create an iterator
const myIterator = Iterator.from([1, 2, 3, 4, 5, 6]);
// Map the Iterator
const mappedIterator = myIterator.flatMap(x => [x, x * 10]);
O‘zingiz sinab ko‘ring »
forEach() metodi
forEach() usuli
iteratordagi har bir element uchun taqdim etilgan funksiyani bir marta bajaradi.
Misol
// Create an iterator
const myIterator = Iterator.from("123456789");
// Iterate over all elements
let text = "";
myIterator.forEach (x => text += x);
O‘zingiz sinab ko‘ring »
map() metodi
map() usuli
Map funksiyasi tomonidan o‘zgartirilgan barcha elementlar bilan yangi iteratorni qaytaradi.
Misol
// Create an iterator
const myIterator = Iterator.from("123456789");
// Now you can use the map method
const mappedIterator = myIterator.map(x => x * 2);
O‘zingiz sinab ko‘ring »
reduce() metodi
reduce() usuli
uni bitta qiymatga kamaytirish uchun akkumulyatorga va har bir elementga nisbatan reduktor funksiyasini qo‘llaydi.
Misol
// Create an Iterator
const myIterator = Iterator.from([175, 50, 25]);
// Reduce the Iterator
let result = myIterator.reduce(myFunc);
O‘zingiz sinab ko‘ring »
some() metodi
some() usuli
agar iteratordagi kamida bitta element taqdim etilgan test funksiyasiga javob bersa, true qaytaradi.
Misol
// Create an Iterator
const myIterator = Iterator.from("123456789");
// Is some Element greater than 7?
let result = myIterator.some(x => x > 7);
O‘zingiz sinab ko‘ring »
take() metodi
take() usuli
ko‘pi bilan belgilangan miqdordagi elementlarni beradigan yangi iteratorni qaytaradi.
Misol
const myIterator = Iterator.from([1, 2, 3, 4, 5, 6]);
// Take the first five elements
const firstFive = myIterator.take(5);
O‘zingiz sinab ko‘ring »
RegExp /v bayrog‘i
v bayrog‘i u bayrog‘iga "yangilanish" dir.
u (unicode) bayrog‘i muntazam ifodalarda Unicode’ni to‘liq qo‘llab-quvvatlashni yoqadi.
v bayrog‘i Unicode bilan bog‘liq qo‘shimcha imkoniyatlarni yoqadi.
Yangi imkoniyatlar:
- \p ekranlash ketma-ketligi faqat belgilarga emas, stringlarga ham mos keladi.
- Belgilar sinfi kesishish, birlashtirish va ayirish sintaksiklariga, shuningdek, bir nechta Unicode belgilariga mos kelishiga ruxsat berish uchun yangilanadi.
Misollar
let text = "Hello 😄";
let pattern = /\p{RGI_Emoji}/v;
let result = pattern.test(text);
O‘zingiz sinab ko‘ring »
let text = "Hello 😄";
let pattern = /\p{RGI_Emoji}/;
let result = pattern.test(text);
O‘zingiz sinab ko‘ring »
Ikkala bayroqdan foydalanish (u va v) SyntaxErrorga olib keladi.
/regexp/v 2025-yil may oyidan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 136 |
Edge 136 |
Firefox 134 |
Safari 18.2 |
Opera 121 |
| Apr 2025 | May 2025 | Jan 2025 | Des 2024 | Jun 2025 |
RegExp.escape() metodi
RegExp.escape() usuli tegishli belgilar joylashgan stringni qaytaradi
muntazam ifoda sintaksisi qochib ketadi.
Bu +, *, ?, ^, $, (, ), [, ], {, }, | va \ kabi belgilarni oddiy iboraning bir qismi sifatida emas, balki tom ma’noda ko‘rib chiqish imkonini beradi.
Misol
"[*]" stringiga mos keladigan muntazam ifoda yaratish:
// Escape a text for to use as a regular expression
const safe = RegExp.escape("[*]");
// Build a new reglar expression
const regex = new RegExp(safe);
// Text to replace within
const oldText = "[*] is a web school.";
// Perform the replace
const newText = oldText.match(regex, "W3Schools");
O‘zingiz sinab ko‘ring »
RegExp.escape() May 2025 dan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 136 |
Edge 136 |
Firefox 134 |
Safari 18.2 |
Opera 121 |
| Apr 2025 | May 2025 | Jan 2025 | Des 2024 | Jun 2025 |
Float16Array metodi
Float16Array — 16 bitli (yarim aniqlikdagi) suzuvchi nuqtali sonlarni IEEE 754 yarim aniqlik formatida saqlaydigan TypedArray.
Float16Array Float32Array xotirasining yarmini va Float64Arrayning chorak qismini talab qiladi.
Misol
const myArr = new Float16Array([1.5, 2.5, 3.5, 4.5]);
let bytes = myArr.BYTES_PER_ELEMENT;
let length = myArr.length;
O‘zingiz sinab ko‘ring »
Float16Array obyekti June 2024 dan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 135 |
Edge 135 |
Firefox 129 |
Safari 18.2 |
Opera 120 |
| Apr 2025 | Apr 2025 | Aug 2024 | Des 2024 | May 2025 |
Math.f16round usuli
Statik Math.f16round() metodi sonning eng yaqin 16-bitli suzuvchi nuqta (floating point) ko‘rinishini qaytaradi.
Misol
let a = Math.f16round(2.60);
let b = Math.f16round(2.50);
let c = Math.f16round(2.49);
let d = Math.f16round(-2.60);
let e = Math.f16round(-2.50);
let f = Math.f16round(-2.49);
O‘zingiz sinab ko‘ring »
Math.f16round() metodi June 2024 dan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 135 |
Edge 135 |
Firefox 129 |
Safari 18.2 |
Opera 120 |
| Apr 2025 | Apr 2025 | Aug 2024 | Des 2024 | May 2025 |
Promise.try() metodi
Promise.try() metodi xato chiqarishi mumkin bo‘lgan sinxron koddan promise zanjirini boshlaydi.
Bu istisnolar (exceptions) promise rejections sifatida to‘g‘ri boshqarilishini ta’minlaydi.
Misol
function compute() {
return Promise.try(() => {
const v = mayThrowSync();
return asyncFunc(v);
});
}
Import atributlari bilan modullar
Sintaksis
import {names} from "module-name" with {key:"data"};
Misollar
import config from "config.json" with {type:"json"};
import styles from "styles.css" with {type:"css"};
import data from "data.json" with {type:"json"};
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
