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()