JS 2019
JavaScript 2019 dagi yangi imkoniyatlar
| Xususiyat | Tavsif | |
|---|---|---|
| String trimStart() | String boshidagi bo‘sh joylarni olib tashlaydi | |
| String trimEnd() | String oxiridagi bo‘sh joylarni olib tashlaydi | |
| Object.fromEntries | Kalit/qiymat juftliklaridan obyekt yaratadi | |
| Optional catch binding | Agar kerak bo‘lmasa catch parametrini o‘tkazib yuborishga imkon beradi | |
| Array flat() | Ichma-ich massivni tekislab, yangi massiv yaratadi | |
| Array flatMap() | Massivning barcha elementlarini Map’ga tushiradi va massivni tekislash orqali yangi Array yaratadi | |
| Revised Array sort() | Endi brauzerlar barqaror saralash algoritmidan foydalanishi shart | |
| Revised JSON.stringify() | UTF-8 kod nuqtalari bo‘lgan Stringlar endi xavfsiz tarzda aylantiriladi | |
| Separator symbols in strings | Endi stringlarda satr va paragraf ajratgichlariga (\u2028 va \u2029) ruxsat berilgan | |
| Revised Function.toString() | Endi sharhlar va bo‘shliqlar va sintaksis tafsilotlarini o‘z ichiga olgan manba kodini qaytaradi |
Brauzerlarda qo‘llab-quvvatlash
ECMAScript 2019 2020-yil yanvar oyidan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 66 |
Edge 79 |
Firefox 61 |
Safari 12 |
Opera 50 |
| Apr 2018 | Jan 2020 | Jun 2018 | Sep 2018 | May 2018 |
JavaScript stringlarining trimStart() metodi
ES2019 JavaScript’ga trimStart() String metodini qo‘shdi.
trimStart() usuli trim() kabi ishlaydi, lekin bo‘shliqni faqat String boshidan olib tashlaydi.
JavaScript stringlarining trimEnd() metodi
ES2019 JavaScript’ga trimEnd() String metodini qo‘shdi.
trimEnd() usuli trim() kabi ishlaydi, lekin bo‘shliqni faqat String oxiridan olib tashlaydi.
JavaScript Object fromEntries() metodi
ES2019 JavaScript’ga fromEntries() Object metodini qo‘shdi.
fromEntries() usuli takrorlanadigan kalit/qiymat juftlaridan obyekt yaratadi.
Misol
const fruits = [
["apples", 300],
["pears", 900],
["bananas", 500]
];
const myObj = Object.fromEntries(fruits);
O‘zingiz sinab ko‘ring »
Ixtiyoriy catch bog‘lanishi
ES2019 dan, agar kerak bo‘lmasa catch parametrini o‘tkazib yuborishingiz mumkin:
Misol
Before 2019:
try {
// code
} catch (err) {
// code
}
After 2019:
try {
// code
} catch {
// code
}
JavaScript massivlarining flat() metodi
ES2019 JavaScript’ga Array flat() metodini qo‘shdi.
flat() usuli ichki massivni tekislash orqali yangi massiv hosil qiladi.
JavaScript massivlarining flatMap() metodi
ES2019 JavaScript-ga Array flatMap() usulini qo‘shdi.
flatMap() usuli avval massivning barcha elementlarini Map’ga tushiradi va keyin massivni tekislash orqali yangi Array yaratadi.
Misol
const myArr = [1, 2, 3, 4, 5, 6];
const newArr = myArr.flatMap(x => [x, x * 10]);
O‘zingiz sinab ko‘ring »
Barqaror Array sort()
ES2019 Array sort() usulini qayta ko‘rib chiqdi.
2019 yilgacha spetsifikatsiya QuickSort kabi beqaror tartiblash algoritmlariga ruxsat berdi.
ES2019 dan keyin brauzerlar barqaror tartiblash algoritmidan foydalanishlari kerak:
Elementlarni qiymat bo‘yicha saralashda elementlar bir xil qiymatga ega bo‘lgan boshqa elementlarga nisbatan o‘zlarining nisbiy o‘rnini saqlab qolishlari kerak.
Misol
const myArr = [
{name:"X00",price:100 },
{name:"X01",price:100 },
{name:"X02",price:100 },
{name:"X03",price:100 },
{name:"X04",price:110 },
{name:"X05",price:110 },
{name:"X06",price:110 },
{name:"X07",price:110 }
];
O‘zingiz sinab ko‘ring »
Yuqoridagi misolda, narx bo‘yicha saralashda, natijada boshqa nisbiy pozitsiyada nomlar bo‘lmasligi kerak, masalan:
X01 100
X03 100
X00 100
X03 100
X05 110
X04 110
X06 110
X07 110
Yangilangan JSON.stringify()
ES2019 JSON stringify() usulini qayta ko‘rib chiqdi.
2019-yilgacha JSON \ bilan kodlangan belgilarni stringify qila olmas edi.
ES2019 dan oldin UTF-8 kod nuqtalari (U+D800 dan U+DFFF gacha) uchun JSON.stringify() ishlatilganda ��� kabi buzilgan Unicode belgilar qaytarilardi.
Ushbu qayta ko‘rib chiqilgandan so‘ng, UTF-8 kod nuqtalari bo‘lgan stringlar JSON.stringify() bilan xavfsiz tarzda o‘zgartiriladi,
va JSON.parse() yordamida asl nusxaga qayting.
Ajratuvchi belgilar
Endi string harflarida string ajratuvchi va paragraf ajratuvchi belgilarga (\u2028 va \u2029) ruxsat berilgan.
2019-yilgacha ular qator terminatorlari sifatida ko‘rib chiqildi va xato istisnolariga olib keldi:
Endi JavaScript va JSON bir xil qoidalarga ega.
Before ES2019:
text = JSON.parse('"\u2028"') '' ga tahlil qiladi.
text = '"\u2028"' would give syntax error.
Yangilangan Function toString()
ES2019 revised the Function toString() method.
toString() usuli funksiyaning manba kodini ifodalovchi stringni qaytaradi.
2019 yildan boshlab toString() funksiyaning manba kodini, jumladan sharhlar, bo‘shliqlar va sintaksis tafsilotlarini qaytarishi kerak.
2019-yilgacha turli brauzerlar funksiyaning turli variantlarini (masalan, izohlar va bo‘shliqlarsiz) qaytarardi. 2019-yildan boshlab funksiya aynan qanday yozilgan bo‘lsa, shunday qaytarilishi kerak.
Misol
function myFunction(p1, p2) {
return p1 * p2;
}
let text = myFunction.toString();
O‘zingiz sinab ko‘ring »
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
