ECMAScript 2022

Versyon ng JavaScript

Ang lumang bersyon ng ECMAScript ay pinangalanan ng numero: ES5 at ES6.

Simula noong 2016, ang bersyon ay pinangalanan ng taon: ES2016, 2018, 2020, 2022.

Ang bagong katangian ng ES2022

Babala:

Ang mga katangian na ito ay napakabagong laman.

Ang lumang browser ay maaring mangailangan ng kapalit na code (Polyfill).

JavaScript Array at()

Ang ES2022 ay nagpalabas ng mga array method at():

Halimbawa 1

Hinihigayon ang ikatlong elemento ng array na 'fruits':

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits.at(2);

ព្យាយាមតាមដោយខ្លួនឯង

Halimbawa 2

Hinihigayon ang ikatlong elemento ng array na 'fruits':

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[2];

ព្យាយាមតាមដោយខ្លួនឯង

at() Ang method ay ibabalik ng array ang elemento na nasa ilalim ng tinukoy na index.

at() វិធីសាស្រ្តជាមួយ [] លទ្ធផលដែលត្រូវបានបញ្ចេញដូចគ្នា。

ចាប់តាំងពីខែ 3 ឆ្នាំ 2022 ទៅ ការគាំទ្រនៅក្នុងអ្នកតាមដានបច្ចុប្បន្នទាំងអស់គ្នា: at() វិធីសាស្រ្ត:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
April 2021 ខែ 7 ឆ្នាំ 2021 ខែ 7 ឆ្នាំ 2021 ខែ 3 ឆ្នាំ 2022 ខែ 8 ឆ្នាំ 2021

Babala:

Maraming wika ang pinapayagan ang paggamit ng nag-iisa na index ( tulad ng [-1])Access object/array/string sa huling elemento.

Ito ay hindi maisasagawa sa JavaScript dahil [] Ginagamit upang ma-access ang array at object. Ang obj[-1] ay tumutukoy sa halaga ng key -1, hindi ng huling attribute ng object.

at() Ang method ay nagpalabas sa ES2022 upang malutas ang problema na ito.

JavaScript String at()

Ang ES2022 ay nagpalabas ng mga string method at():

Halimbawa 1

Hinihigayon ang ikatlong titik ng string na 'name':

const name = "W3Schools";
let letter = name.at(2);

ព្យាយាមតាមដោយខ្លួនឯង

Halimbawa 2

Hinihigayon ang ikatlong titik ng string na 'name':

const name = "W3Schools";
let letter = name[2];

ព្យាយាមតាមដោយខ្លួនឯង

at() វិធីសាស្រ្តគឺត្រូវបានប្រើសំរាប់ផ្តល់អត្ថប្រយោជន៍ដែលត្រូវការពីខ្សែអត្ថប្រយោជន៍ក្នុងការបញ្ចេញពីរក្សាសញ្ញា។

at() វិធីសាស្រ្តជាមួយ [] លទ្ធផលដែលត្រូវបានបញ្ចេញដូចគ្នា。

ចាប់តាំងពីខែ 3 ឆ្នាំ 2022 ទៅ ការគាំទ្រនៅក្នុងអ្នកតាមដានបច្ចុប្បន្នទាំងអស់គ្នា: at() វិធីសាស្រ្ត:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
April 2021 ខែ 7 ឆ្នាំ 2021 ខែ 7 ឆ្នាំ 2021 ខែ 3 ឆ្នាំ 2022 ខែ 8 ឆ្នាំ 2021

RegExp d អត្តសញ្ញាណ

ES2022 បានបន្ថែម /d អត្តសញ្ញាណ ត្រូវបានប្រើសំរាប់ការបញ្ជាក់ពីការចាប់ផ្តើម និងការបញ្ចប់នៃការតាមដាន。

ឧទ្ទាម

let text = "aaaabb";
let result = text.match(/(aa)(bb)/d);

ព្យាយាមតាមដោយខ្លួនឯង

RegExp អត្តសញ្ញាណគឺត្រូវបានប្រើសំរាប់កំណត់ការមិនចាត់ទុកឈ្មោះធំ/តូច និងការស្វែងរកសាធារណៈផ្សេងទៀត:

អត្តសញ្ញាណ ការពន្យល់ ព្យាយាមតាមដោយខ្លួនឯង
g ធ្វើការតាមដានជាសាធារណៈ(ស្វែងរកទាំងអស់)。 ព្យាយាមតាមដោយខ្លួនឯង
i ធ្វើការតាមដានដោយមិនចាត់ទុកឈ្មោះធំ/តូច ព្យាយាមតាមដោយខ្លួនឯង
d ធ្វើការតាមដានជាអនុចរសម្រាប់(ES2022 ថ្មី)。 ព្យាយាមតាមដោយខ្លួនឯង
m ធ្វើការតាមដានជាបន្តបន្ទាប់ ព្យាយាមតាមដោយខ្លួនឯង

Object.hasOwn()

ES2022 ផ្តល់នូវវិធីសាស្រ្តមួយដែលមានសុវត្ថិភាពក្នុងការត្រួតពិនិត្យថាតើអត្ថប្រយោជន៍គឺជាអត្ថប្រយោជន៍ដែលមានរបស់វត្ថុ។

Object.hasOwn() ដូចគ្នានឹង Object.prototype.hasOwnProperty,ប៉ុន្តែគាំទ្រប្រភេទវត្ថុគ្រប់ប្រភេទ。

ឧទ្ទាម

Object.hasOwn(myObject, age)

ព្យាយាមតាមដោយខ្លួនឯង

Error Cause

ES2022 អនុញ្ញាតអោយកំណត់មូលហេតុចម្រង់នៃកំហុសតាមរយៈ error.cause。

ឧទ្ទាម

connectData(); 
  catch (err) { 
} 
  throw new Error("Connecting failed.", { cause: err }); 
}

ព្យាយាមតាមដោយខ្លួនឯង

JavaScript await import

JavaScript ម៉ូឌីយ៉ូគួរត្រូវរងចាំមុនពេលដែលចាប់ផ្តើមដំណើរការ:

import {myData} from './myData.js';
const data = await myData();

JavaScript បញ្ជីប្រភេទ

class Hello {
  counter = 0; // បញ្ជីប្រភេទ
}
const myClass = new Hello();
let x = myClass.counter;

ចាប់តាំងពីខែមេសា 2021 ទៅ ការគាំទ្រនៃបញ្ជីប្រភេទនៅក្នុងអ្នកតាមដានបច្ចុប្បន្នគ្រប់គ្រាន់ទាំងអស់គ្នា:

Chrome Edge Firefox Safari Opera
Chrome 72 Edge 79 Firefox 69 Safari 14.1 Opera 60
2019 ខែ 1 January 2020 2019 ខែ 9 April 2021 January 2020

JavaScript Private Methods and Fields

class Hello {
  #counter = 0;  // Private Field
  #myMethod() {} // Private Method
}
const myClass = new Hello();
let x = myClass.#counter; // Error
myClass.#myMethod();      // Error

Starting from June 2021, private methods and fields are supported in all modern browsers:

Chrome Edge Firefox Safari Opera
Chrome 74 Edge 79 Firefox 90 Safari 14.1 Opera 62
April 2019 January 2020 June 2021 April 2021 June 2019