JS 2025

ULASHISH

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.

XususiyatTavsif
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.

funksiyasiTavsif
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

XususiyatTavsif
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:

Union

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:

Intersection

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:

Difference

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:

Symmetric Difference

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:

Subset

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:

Superset

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:

Disjoint

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!