JS 2019


ULASHISH

JavaScript 2019 dagi yangi imkoniyatlar

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

Misol

let text1 = "     Hello World!     ";
let text2 = text1.trimStart();
O‘zingiz sinab ko‘ring »

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.

Misol

let text1 = "     Hello World!     ";
let text2 = text1.trimEnd();
O‘zingiz sinab ko‘ring »

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.

Misol

const myArr = [[1,2],[3,4],[5,6]];
const newArr = myArr.flat();
O‘zingiz sinab ko‘ring »

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.

Misol

let text = JSON.stringify("\u26D4");
O‘zingiz sinab ko‘ring »

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:

Misol

// This is valid in ES2019:
let text = "\u2028";
O‘zingiz sinab ko‘ring »

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!