Skip to content

ECMAScript 2026 ​

JavaScript 2026 dagi yangi xususiyatlar ​

ECMAScript 2026 resurs boshqarish, asinxron operatsiyalarni qayta ishlash va ma'lumotlarni manipulyatsiya qilishni yaxshilashga qaratilgan bir qancha xususiyatlarni taqdim etadi:

  • Yangi JavaScript Date obyekti — Temporal Date
  • using va await using bilan resurs boshqarish
  • Error.isError() bilan xato aniqlash
  • Array.fromAsync() bilan asinxron massiv yaratish
  • Uint8Array uchun Base64 va o'n oltilik kodlash
  • Records & Tuples bilan o'zgarmaslik (Stage 3 taklif)
  • Pattern Matching (Stage 3 taklif)

Ogohlantirish

2026 nashr hali chop etilmagan. U odatda iyun oyida chiqadi. 2025-yil noyabr holatiga ko'ra, bu qoralamadagi xususiyatlar ro'yxati bo'lib, ES2026 ga kiritilishi ehtimoli katta.


Temporal API ​

JavaScript 2026 dagi Temporal API sanalar va vaqtlar bilan ishlash uchun standart obyektlar va funksiyalarni taqdim etadi.

ES2026 dan boshlab, Temporal API JavaScript-da zamonaviy sana va vaqt boshqaruvining standartidir, u eski Date obyektini almashtirish uchun mo'ljallangan. Date dan farqli o'laroq, Temporal obyektlari o'zgarmasdir va vaqt zonalari va Grigoriy bo'lmagan taqvimlarni qo'llab-quvvatlaydi.


using bilan resurs boshqarish ​

JavaScript 2026 resurslarni (fayl handlerlari yoki ma'lumotlar bazasi ulanishlari kabi) ular ko'lamdan chiqib ketganda avtomatik boshqarish va yo'q qilish uchun ikkita kalit so'z qo'shdi. Bu try...finally bloklarining zaruriyatini kamaytiradi.

  • using — blok ko'lamli o'zgaruvchilarning sinxron tozalanishini ta'minlaydi
  • await using — tarmoq oqimlari kabi resurslar uchun asinxron tozalanishni ta'minlaydi
js
class MyResource {
  constructor(name) {
    this.name = name
    myDisplay(`Resource ${this.name} acquired.`)
  }
  [Symbol.dispose]() {
    myDisplay(`Resource ${this.name} disposed.`)
  }
}

function manageResource() {
  using resource = new MyResource('Database Connection')

  // Resursni shu yerda ishlating
  myDisplay(`Using resource: ${resource.name}`)
}

using kalit so'zi tozalash jarayonini avtomatik boshqarib, resurs oqishlarini kamaytiradi va kodning o'qilishini yaxshilaydi.

  • Resurs boshqarish: using Symbol.dispose metodini amalga oshiruvchi obyektlar uchun mo'ljallangan
  • Sinxron yo'q qilish: using bilan e'lon qilingan o'zgaruvchi ko'lamdan chiqqanda, uning Symbol.dispose metodi avtomatik chaqiriladi
  • Asinxron yo'q qilish: Asinxron tozalashni talab qiluvchi resurslar uchun await using e'lonidan foydalanish mumkin
  • Blok ko'lamli: const kabi, using bilan e'lon qilingan o'zgaruvchilar e'lon qilingan blokka mahalliy
  • O'zgarmas: const kabi, using bilan e'lon qilingan o'zgaruvchilar initsializatsiyadan keyin qayta tayinlanmaydi

await using ​

js
async function processFile() {
  using fileHandle = await openFile('data.txt')

  // fileHandle bilan shu yerda ishlang
} // fileHandle avtomatik yopiladi

Error.isError() ​

Error.isError() statik metodi qiymat Error obyekti ekanligini tekshiradi.

js
Error.isError(new TypeError()) // true
Error.isError({ name: 'Error' }) // false

Error.isError() realmlar bo'ylab muvaffaqiyatsiz bo'ladigan instanceof Error ning xavfsiz alternativasidir.


Array.fromAsync() ​

Array.fromAsync() dasturchilarga asinxron iterabllar, massivga o'xshash obyektlar yoki Promiselardan yangi Array instansiyasini yaratishga imkon beradi.

js
async function* asyncGenerator() {
  yield Promise.resolve(1)
  yield Promise.resolve(2)
  yield Promise.resolve(3)
}

async function processAsyncData() {
  const arr = await Array.fromAsync(asyncGenerator())
}

processAsyncData()

Uint8Array to/fromBase64() ​

js
let string = 'W3Schools 123'
const arr = Uint8Array.fromBase64(string)
js
const arr = new Uint8Array([91, 116, 156, 134, 138, 37, 179, 93, 183])
let text = arr.toBase64()

Uint8Array to/fromHex() ​

js
let text = '5b749c868a25b35db7'
const arr = Uint8Array.fromHex(text)
js
const arr = new Uint8Array([91, 116, 156, 134, 138, 37, 179, 93, 183])
let text = arr.toHex()