JS 2022
JavaScript 2022 dagi yangi imkoniyatlar
2023-yil martidan beri barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi.
| Xususiyat | Tavsif | |
|---|---|---|
| Array at() | Massivdan indekslangan elementni qaytaradi | |
| String at() | Stringdan indeks bo‘yicha elementni qaytaradi | |
| RegExp /d | Perform substring matches | |
| Object.hasOwn() | Xususiyat obyektning shaxsiy xususiyati ekanligini tekshiring | |
| error.cause | Xato sababini aniqlash imkonini beradi | |
| await import | JavaScript modullariga ishga tushishdan oldin import talab qiladigan resurslarni kutish imkonini beradi. | |
| Class field declarations | Xususiyatlarni to‘g‘ridan-to‘g‘ri class ichida aniqlash imkonini beradi | |
| Xususiy (private) metodlar va maydonlar | Shaxsiy xususiyatlarga ruxsat beradi (#metod va #field) |
Brauzerlarda qo‘llab-quvvatlash
ECMAScript 2022 2023-yil martidan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 94 |
Edge 94 |
Firefox 93 |
Safari 16.4 |
Opera 80 |
| Sep 2021 | Sep 2021 | Oct 2021 | Mar 2023 | Oct 2021 |
JavaScript Array ()
ES2022 intoduced the array method at():
Misollar
fruits massivining uchinchi elementini olish:
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits.at(2);
O‘zingiz sinab ko‘ring »
fruits massivining uchinchi elementini olish:
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[2];
O‘zingiz sinab ko‘ring »
at() usuli massivdan indekslangan elementni qaytaradi.
at() usuli [] bilan bir xil qaytaradi.
at() usuli 2022-yil mart oyidan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
Ko‘pgina tillar negative bracket indexing kabi [-1] ga a oxiridan boshlab elementlarga kirish imkonini beradi
obyekt / massiv / string.
Bu JavaScript-da mumkin emas, chunki [] Arraylar va obyektlarga kirish uchun ishlatiladi. obj[-1] obyektning oxirgi xususiyatiga emas, -1 kalitining qiymatiga ishora qiladi.
Ushbu muammoni hal qilish uchun at() usuli ES2022 da kiritilgan.
JavaScript String ()
ES2022 intoduced the string method at():
Misollar
Ismning uchinchi harfini oling:
const name = "W3Schools";
let letter = name.at(2);
O‘zingiz sinab ko‘ring »
Ismning uchinchi harfini oling:
const name = "W3Schools";
let letter = name[2];
O‘zingiz sinab ko‘ring »
at() usuli massivdan indekslangan elementni qaytaradi.
at() usuli [] bilan bir xil qaytaradi.
RegExp d modifikatori
ES2022 o‘yinning boshlanishi va oxirini ifodalash uchun /d modifikatorini qo‘shdi.
RegExp modifikatorlari katta-kichik harflarni sezmaydigan va boshqa global qidiruvlarni aniqlash uchun ishlatiladi:
| Modifier | Tavsif | Try it |
|---|---|---|
| i | Perform case-insensitive matching | Try it » |
| g | Global moslikni bajarish (barchasini topish) | Try it » |
| m | Perform multiline matching | Try it » |
| d | Qism string (substring) mosliklarini bajarish (ES2022 da yangi) | Try it » |
Object hasOwn metodi
ES2022 xususiyat obyektning shaxsiy xususiyati ekanligini tekshirishning xavfsiz usulini taqdim etadi.
Object.hasOwn() Object.hasOwnProperty() ga o‘xshaydi, lekin barcha obyektlar turlarini qo‘llab-quvvatlaydi.
Xato sababi (cause)
ECMAScript 2022 dan boshlab Error konstruktori (va uning TypeError, SyntaxError kabi quyi klasslari) ixtiyoriy {cause} xususiyatini qo‘llab-quvvatlaydi.
Bu sizga zanjirli xatolarni yaratishga imkon beradi - bunda bitta xato boshqa sababni o‘z ichiga oladi.
Misol (avval)
try {
// Create a JSON parse failure
JSON.parse("blablablabla");
} catch(err) {
let text = err.name + " " + err.message;
}
O‘zingiz sinab ko‘ring »
Misol (hozir)
try {
try {
// Create a JSON parse failure
JSON.parse("blablablabla");
} catch(err) {
// Create a new error and include the original one as the cause
throw new Error("Failed to load JSON", {cause:err});
}
} catch(err){
let text = err.name + " " + err.message;
document.getElementById("demo").innerHTML = text;
}
O‘zingiz sinab ko‘ring »
JavaScript await import
JavasSript modullari endi ishga tushirishdan oldin import talab qilinadigan resurslarni kutishi mumkin:
import {myData} from './myData.js';
const data = await myData();
JavaScript sinf maydonlarini e’lon qilish
class Hello {
counter = 0; // Class field
}
const myClass = new Hello();
let x = myClass.counter;
JavaScript xususiy metodlari va maydonlari
class Hello {
#counter = 0; // Private field
#myMethod() {} // Private method
}
const myClass = new Hello();
let x = myClass.#counter; // Error
myClass.#myMethod(); // Error
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
