JS 2018
JavaScript 2018 dagi yangi imkoniyatlar
| Xususiyat | Tavsif | |
|---|---|---|
| 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
| Xususiyat | Tavsif | |
|---|---|---|
| /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:
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!
