ECMAScript 2019

Bersyon ng JavaScript

Ang lumang bersyon ng JS ay pinangalanan ng numero: ES5 (2009) at ES6 (2015).

Simula 2016, ang mga bersyon ay pinangalanan ayon sa taon: ECMAScript 2016, 2017, 2018, 2019,...

Ang bagong katangian sa ES2019:

Warning

Ang mga katangian na ito ay napakabagong lamang.

Ang mas lumang browser ay maaaring kailangan ng alternative code (Polyfill).

JavaScript String Method trimStart()

String method na idinagdag ng ES2019 sa JavaScript: trimStart().

trimStart() ang paraan ng gumagana ng paraan na ito ay katulad sa trim() katulad, ngunit kailan lang sa simula ng string ang naitasahan ang espasyo.

Example

let text1 = "     Hello World!     ";
let text2 = text1.trimStart();

Try It Yourself

mula noong Enero 2020, lahat ng modernong browser ay sumusuporta sa JavaScript String trimStart():

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
Abril 2018 Enero 2020 Hunyo 2018 Setyembre 2018 Mayo 2018

JavaScript String Method trimEnd()

Ang ES2019 ay nagdagdag sa JavaScript ng trimEnd() string method.

trimEnd() ang paraan ng gumagana ng paraan na ito ay katulad sa trim() similar, ngunitang magtanggal ng espasyo mula sa huli ng string.

Example

let text1 = "     Hello World!     ";
let text2 = text1.trimEnd();

Try It Yourself

Mula Enero 2020, ang lahat ng modernong browser ay sumusuporta sa JavaScript String trimEnd():

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
Abril 2018 Enero 2020 Hunyo 2018 Setyembre 2018 Mayo 2018

JavaScript Object Method fromEntries()

Ang ES2019 ay nagdagdag sa JavaScript ng fromEntries() Metodong objekto.

fromEntries() Ang metodong ito ay gumawa ng objekto mula sa puwedeng-siklit na key/value pairs.

Example

const fruits = [
["apples", 300],
["pears", 900],
["bananas", 500]

const myObj = Object.fromEntries(fruits);

Try It Yourself

Mula Enero 2020, ang lahat ng modernong browser ay sumusuporta sa JavaScript Object fromEntries():

Chrome Edge Firefox Safari Opera
Chrome 73 Edge 79 Firefox 63 Safari 12.1 Opera 60
Marso 2019 Enero 2020 Oktubre 2018 Marso 2019 Abril 2019

Optional catch Binding

Mula ES2019, kung hindi kinakailangan, maaaring ipagwalang-bahala ang catch parameter:

Example

Bago ng 2019:

try {
// code
}
// code
{}

Pagkatapos ng 2019:

try {
// code
}
// code
{}

Mula Enero 2020, ang lahat ng modernong browser ay sumusuporta sa opsyonal na catch binding:

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 58 Safari 11.1 Opera 53
Abril 2018 Enero 2020 Enero 2018 Marso 2018 Mayo 2018

JavaScript Array Method flat()

Ang ES2019 ay nagdagdag sa JavaScript ng flat() Metodong array.

flat() Ang metodong ito ay gumawa ng bagong array sa pamamagitan ng pagpalamin ng nakakasalamin na array.

Example

const myArr = [[1,2],[3,4],[5,6]];
const newArr = myArr.flat();

Try It Yourself

Mula Enero 2020, ang lahat ng modernong browser ay sumusuporta sa JavaScript Array flat():

Chrome Edge Firefox Safari Opera
Chrome 69 Edge 79 Firefox 62 Safari 12 Opera 56
Setyembre 2018 Enero 2020 Setyembre 2018 Setyembre 2018 Setyembre 2018

JavaScript Array Method flatMap()

Ang ES2019 ay nagdagdag sa JavaScript ng flatMap() Metodong array.

flatMap() Ang paraan ay unang mapapalamin ang lahat ng elemento ng array, pagkatapos ay gumawa ng bagong array sa pamamagitan ng pagpalamin ng array.

Example

const myArr = [1, 2, 3, 4, 5, 6];
const newArr = myArr.flatMap((x) => x * 2);

Try It Yourself

Stable Array Method sort()

ES2019 Revision了 Array sort() 方法。

在 2019 年之前,规范允许不稳定的排序算法,例如 QuickSort。

在 ES2019 之后,浏览器必须使用稳定的排序算法:

当根据一个值对元素进行排序时,这些元素必须保持它们与具有相同值的其他元素的相对位置。

Example

const myArr = [
  {name:"X00",price:100 },
  {name:"X01",price:100 },
  {name:"X02",price:100 },
  {name:"X03",price:100 },
  {name:"X04",price:110 },
  {name:"X05",price:110 },
  {name:"X06",price:110 },
  {name:"X07",price:110 }

Try It Yourself

Sa pagkakakilanlan ng ito, kapag inayos ang resulta ayon sa presyo, ang pangalan ay hindi pinapayagan na lumitaw sa iba't ibang posisyon ng kaugnayang pangalan, tulad ng ibabang linya:

X01 100
X03 100
X00 100
X03 100
X05 110
X04 110
X06 110
X07 110

Revised JSON.stringify()

ES2019 Revisionng JSON stringify() method.

Bago ang 2019, ang JSON ay hindi nakakapag-stringify ng character na may encoding na \.

Example

let text = JSON.stringify("\u26D4");

Try It Yourself

Bago ang ES2019, ang paggamit ng JSON.stringify() sa UTF-8 code point (U+D800 hanggang U+DFFF) ay maaaring ibigay ang napinsala na Unicode character, halimbawa ���.

Pagkatapos ng pagbabago, ang mga string na may UTF-8 code point (U+D800 hanggang U+DFFF) ay maaaring ligtas na ililipat gamit ang JSON.stringify() at muling mapanumbalik gamit ang JSON.parse() sa orihinal na string.

Separator

Ang mga teksto ng string ay pinahihintulutan ngayon na gamitin ang pagsasapit ng linya at pagsasapit ng pahina (\u2028 at \u2029)。

Bago ang 2019, ang mga ito ay itinuturing na pagsasara ng linya at nagdudulot ng error sa pagkakaroon ng anomalya:

Example

// Ito ay magiging epektibo sa ES2019:
let text = "\u2028";

Try It Yourself

Pansin:

Ngayon, ang JavaScript at JSON ay may magkaparehong patakaran.

Bago ang ES2019:

Ang 'text = JSON.parse('"\u2028"')' ay maaaring maisalin sa ''.

Ang 'text = '"\u2028"' ay magbibigay ngMaling pangungusap.

Revised Function toString()

ES2019 RevisionFunction toString() method.

The toString() method returns a string representing the source code of the function.

Starting from 2019, toString() must return the source code of the function, including comments, spaces, and syntax details.

Before 2019, different browsers returned different function variants (such as without comments and spaces). Starting from 2019, the function should be returned completely in the way it was written.

Example

function myFunction(p1, p2) {
  return p1 * p2;
{}

Try It Yourself