JS 2018


ULASHISH

JavaScript 2018 dagi yangi imkoniyatlar

XususiyatTavsif
Asynchronous Iteration For/of sikllarida await kalit so‘ziga ruxsat beradi
Promise Finally Promise "bajarilgan" yoki "rad etilgan" bo‘lsa, bajarilishi kerak bo‘lgan funksiyani rejalashtiradi.
Array Rest Elements Massivni destrukturizatsiya qilish va qolgan elementlarni yig‘ish imkonini beradi
Object Rest Properties Obyektni destrukturizatsiya qilish va qolgan xususiyatlarni yig‘ish imkonini beradi
Shared Memory Dasturning turli qismlariga bir xil xotiraga kirish imkonini beradi

2018-yildagi yangi RegExp imkoniyatlari

XususiyatTavsif
/s . (nuqta) metabelgisiga qator tugash belgilariga ham mos kelish imkonini beradi
\p{} Unicode belgi xususiyatiga ega belgiga mos keladi
(?<=y) (?<=y)x — agar "x" dan oldin "y" kelsa, "x" ga mos keladi
(?<!y) (?<!y)x, agar "x" dan oldin "y" YO‘Q bo‘lsa, "x" ga mos keladi.
(?<name>) Matnni ushlaydi va unga nom (yorliq) beradi

Brauzerlarda qo‘llab-quvvatlash

ECMAScript 2018 2020-yil iyun oyidan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:

Chrome
64
Edge
79
Firefox
78
Safari
12
Opera
51
Jan 2018 Jan 2020 Jun 2020 Sep 2018 Feb 2018

JavaScript asinxron iteratsiya

ECMAScript 2018 asinxron iteratorlar va iteratsiya qilinadigan obyektlarni qo‘shdi.

Asinxron takrorlanuvchilar bilan biz await dan foydalanishimiz mumkin. for/of siklidagi kalit so‘z.

Misol

for await () {}

JavaScript Promise.finally() metodi

ECMAScript 2018 Promise.finally bilan Promise obyektini to‘liq amalga oshirishni yakunlaydi:

Promise.finally() promise muvaffaqiyatli bajarilganda yoki rad etilganda ishga tushadigan funksiyani belgilaydi.

Misol

let myPromise = new Promise();

myPromise.then();
myPromise.catch();
myPromise.finally();

JavaScript massivlarining rest elementlari

ECMAScript 2018 qolgan operatorni qo‘shdi (...).

Dam olish operatori (...) bizga massivni destrukturizatsiya qilish va qolgan qismini yig‘ish imkonini beradi:

1-misol

let a, rest;
const arr1 = [1,2,3,4,5,6,7,8];

[a, ...rest] = arr1;
O‘zingiz sinab ko‘ring »

2-misol

let a, b, rest;
const arr1 = [1,2,3,4,5,6,7,8];

[a, b, ...rest] = arr1;
O‘zingiz sinab ko‘ring »

JavaScript obyektlarining rest xususiyatlari

ECMAScript 2018 qolgan operatorni qo‘shdi (...).

Bu bizga obyektni destrukturizatsiya qilish va qolgan xususiyatlarni yangi obyektga yig‘ish imkonini beradi:

Misol

// Create an Object:
const car = {type:"Fiat", model:"500", color:"white"};

// Destructure the Object
let {type, model, color} = car;
document.getElementById("demo").innerHTML = "The car type is: " + type;
O‘zingiz sinab ko‘ring »


JavaScript RegExp’ning yangi imkoniyatlari

ECMAScript 2018 added 4 new RegExp features:

  • /s (dotAll) Flag
  • Unicode Property Escapes (\p{...})
  • Lookbehind tasdiqlari (?<=y)x va (?<!y)x
  • Named Capture Groups

RegExp /s bayrog‘i

Misol

let text = "Line\nLine.";

let pattern = /Line./gs;
let result = text.match(pattern);
O‘zingiz sinab ko‘ring »

Tavsif

s (dotAll) bayrog‘i . (nuqta) har qanday belgiga mos keladigan metabelgi, jumladan qator terminatori belgilari (masalan, \n, \r, \u2028, \u2029).

S bo‘lmasa, \n qator terminatorlariga mos kelmaydi.


RegExp \p metabelgisi

Misol

let text = "Hello 😄";

let pattern = /\p{RGI_Emoji}/v;
let result = pattern.test(text);
O‘zingiz sinab ko‘ring »

Tavsif

\p{Unicode Property} meta-belgisi Unicode belgilar xususiyatiga ega har qanday belgiga mos keladi.


RegExp orqaga qarash (lookbehind)

Misol (?<=y)x

let text = "Hello W3Schools";

let pattern = /(?<=Hello )W3Schools/;
let result = pattern.test(text);
O‘zingiz sinab ko‘ring »

Tavsif

(?<=y)x — agar "x" dan oldin "y" kelsa, "x" ga mos keladi.


Inkor orqaga qarash (negative lookbehind)

Misol (?<!y)x

let text = "Hello W3Schools";

let pattern = /(?<=Hello )W3Schools/;
let result = pattern.test(text);
O‘zingiz sinab ko‘ring »

Tavsif

(?<!y)x "x" ga mos keladi, agar "x" oldidan "y" YO‘Q bo‘lsa.


RegExp nomlangan ushlovchi guruhlar

Misol (?<name>...)

const text = "Name: John Doe";

// Using named capturing groups
const regex = /(?<firstName>\w+) (?<lastName>\w+)/;
const match = text.match(regex);

let fName = match.groups.firstName;
let lName = match.groups.lastName;
O‘zingiz sinab ko‘ring »

Explained

  • (?<firstName>\w+) so‘zni ushlaydi va unga firstName nomini beradi
  • (?<lastName>\w+) lastName uchun ham xuddi shunday qiladi
  • text.match() groups xususiyatiga ega massivni qaytaradi
  • match.groups() obyekt qaytaradi:
    {firstName:"John", lastName:"Doe" }

Ushlovchi guruhlarga ega muntazam ifoda ishlatilganda, stringning match() metodi groups xususiyatini o‘z ichiga olgan natija massivini qaytaradi. Bu groups xususiyati nomlangan ushlovchi guruhlar uchun mosliklarni saqlaydigan obyektdir.


JavaScript oqimlari

JavaScript-da siz mavzularni yaratish uchun Web Workers API-dan foydalanasiz.

Asosiy dastur bajarilishini davom ettirishi uchun fonda kodni bajarish uchun ishchi iplar ishlatiladi.

Ishchi iplar asosiy dastur bilan bir vaqtda ishlaydi. Dasturning turli qismlarini bir vaqtda bajarish vaqtni tejash imkonini beradi.

JavaScript umumiy xotirasi

Umumiy xotira — oqimlarga (dasturning turli qismlariga) bir xil xotiradagi bir xil ma’lumotlarga kirish va ularni yangilash imkonini beradigan imkoniyat.

Tarmoqlar o‘rtasida ma’lumotlarni uzatish o‘rniga, ma’lumotlar saqlanadigan xotiraga ishora qiluvchi SharedArrayBuffer obyektini o‘tkazishingiz mumkin.

SharedArrayBuffer

SharedArrayBuffer obyekti ArrayBuffer obyektiga o‘xshash, qat’iy uzunlikdagi xom ikkilik ma’lumotlar buferini ifodalaydi.


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!