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:
- String.trimStart()
- String.trimEnd()
- Object.fromEntries
- Optional catch Binding
- Array.flat()
- Array.flatMap()
- Muling binago ang Array.Sort()
- Revised JSON.stringify()
- Ang mga pinahihintulutang na separator sa string literal
- Muling binago ang Function.toString()
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();
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();
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);
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();
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);
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 }
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");
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";
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; {}