JS 2022


ULASHISH

JavaScript 2022 dagi yangi imkoniyatlar

2023-yil martidan beri barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi.

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

Misol

let text = "aaaabb";
let result = text.match(/(aa)(bb)/d);
O‘zingiz sinab ko‘ring »

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.

Misol

Object.hasOwn(myObject, age)
O‘zingiz sinab ko‘ring »

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!