JavaScript Temporalga Kirish (Introduction)
Temporal — bu JavaScript-da sana va vaqt bilan ishlash uchun mo'ljallangan yangi standart hisoblanadi.
Yangi Temporal obyektlari eski va bugungi kunda ham ko'plab xatolarga sabab bo'layotgan Date obyektini o'rnini bosish uchun ishlab chiqilgan.
Eski Date obyektidan farqli o'laroq, Temporal obyektlari o'zgarmas (immutable) hisoblanadi. Shuningdek, ular vaqt zonalari, qishki/yozgi vaqt (DST), sanalar matematikasi va turli kalendarlar bilan ishlashda to'liq yordam beradi.
Temporal nima?
Temporal — bu JavaScript-ning o'rnatilgan API-si bo'lib, u Date obyektiga qaraganda tushunarliroq va xavfsizroq metodlarni taqdim etadi.
| Xususiyat | Date | Temporal |
|---|---|---|
| O'zgaruvchanlik (mutable) | Ha (o'zgarib qoladi) | Yo'q (o'zgarmas) |
| Vaqt zonalari bilan ishlash | Cheklangan | To'liq qo'llab-quvvatlaydi |
| DST xavfsizligi | Yo'q | Ha |
| Zamonaviy dizayn | Yo'q | Ha |
Nega Temporal yaratildi?
Date obyekti 1995-yilda yaratilgan va uning ba'zi kamchiliklari dasturchilar hayotini hali ham qiyinlashtirmoqda:
- Oylarning 0 dan boshlanishi (Yanvar = 0).
- Obyektni o'zgartirganda asl nusxaning ham o'zgarib ketishi (
mutation). - Vaqt zonalari bilan ishlashdagi murakkabliklar.
Temporal aynan shu muammolarni hal qilish va ishonchli kod yozish uchun yaratildi.
Oddiy Temporal Misoli
Temporal yordamida bugungi sanani olish va unga kun qo'shish juda oson va xavfsiz:
Misol
let bugun = Temporal.Now.plainDateISO();
let keyingiHafta = bugun.add({ days: 7 });E'tibor bering, bugun o'zgaruvchisi o'zgarmaydi. Temporal har doim eski qiymatni o'zgartirish o'rniga, yangi natijani qaytaradi.
Temporal Obyekt Turlari
Temporal turli xil ehtiyojlar uchun bir nechta obyekt turlarini taklif qiladi:
Temporal.Instant: Vaqtning aniq bir lahzasi (UTC timestamp).Temporal.PlainDate: Faqat sana (yil, oy, kun).Temporal.PlainDateTime: Vaqt zonasisiz sana va vaqt.Temporal.ZonedDateTime: Vaqt zonasi bilan birga sana va vaqt.Temporal.Duration: Vaqt davomiyligi (masalan, "2 soat-u 15 minut").
Xulosa
- Temporal — JavaScript-da vaqt bilan ishlashning zamonaviy va xavfsiz usuli.
- U
Dateobyektidagi oylarni 0 dan sanash va o'zgaruvchanlik kabi muammolarni hal qiladi. - Har bir holat uchun (faqat sana, faqat vaqt va h.k.) alohida obyekt turlari mavjud.
