ECMAScript 2019

  • Προηγούμενη σελίδα JS 2018
  • Επόμενη σελίδα JS 2020

JavaScript 版本号

旧的 JS 版本以数字命名:ES5 (2009) 和 ES6 (2015)。

从 2016 年开始,版本按年份命名:ECMAScript 2016、2017、2018、2019、...

ES2019 中的新特性:

警告

这些特性相对较新。

较旧的浏览器可能需要替代代码(Polyfill)

JavaScript字符串 μέθοδος trimStart()

ES2019 为 JavaScript 添加了 String 方法 trimStart()

trimStart() 方法的工作方式与 trim() 类似,但仅从字符串的开头删除空格。

Παράδειγμα

let text1 = "\x20\x20\x20Hello World!\x20\x20\x20";
let text2 = text1.trimStart();

Δοκιμάστε το προσωπικά

自 2020 年 1 月以来,所有现代浏览器都支持 JavaScript String trimStart():

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
Απρίλιος 2018 Ιανουάριος 2020 Ιούνιος 2018 Σεπτέμβριος 2018 Μάιος 2018

JavaScript字符串 μέθοδος trimEnd()

Το ES2019 προσθέτει στο JavaScript trimEnd() 字符串方法。

trimEnd() 方法的工作方式与 trim() 类似,但仅从字符串末尾删除空格。

Παράδειγμα

let text1 = "\x20\x20\x20Hello World!\x20\x20\x20";
let text2 = text1.trimEnd();

Δοκιμάστε το προσωπικά

Από τον Ιανουάριο του 2020, όλες οι σύγχρονες περιηγητές υποστηρίζουν το JavaScript String trimEnd():

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
Απρίλιος 2018 Ιανουάριος 2020 Ιούνιος 2018 Σεπτέμβριος 2018 Μάιος 2018

JavaScript αντικείμενο μέθοδος fromEntries()

Το ES2019 προσθέτει στο JavaScript fromEntries() Μέθοδοι αντικειμένων.

fromEntries() Η μέθοδος δημιουργεί αντικείμενα από ανακρίβεια κλειδιών/τιμών.

Παράδειγμα

const fruits = [
["apples", 300],
["pears", 900],
["bananas", 500]
];
const myObj = Object.fromEntries(fruits);

Δοκιμάστε το προσωπικά

Από τον Ιανουάριο του 2020, όλες οι σύγχρονες περιηγητές υποστηρίζουν το JavaScript Object fromEntries():

Chrome Edge Firefox Safari Opera
Chrome 73 Edge 79 Firefox 63 Safari 12.1 Opera 60
Μάρτιος 2019 Ιανουάριος 2020 Οκτώβριος 2018 Μάρτιος 2019 Απρίλιος 2019

Επιλογή catch συνδέσμος

Από το ES2019 και μετά, μπορείτε να παραλείψετε το parameter catch αν δεν χρειάζεται:

Παράδειγμα

Πριν από το 2019:

try {
// κώδικας
}
// κώδικας
}

Μετά το 2019:

try {
// κώδικας
}
// κώδικας
}

Από τον Ιανουάριο του 2020, όλες οι σύγχρονες περιηγητές υποστηρίζουν την επιλογή catch binding:

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 58 Safari 11.1 Opera 53
Απρίλιος 2018 Ιανουάριος 2020 Ιανουάριος 2018 Μάρτιος 2018 Μάιος 2018

JavaScript array μέθοδος flat()

Το ES2019 προσθέτει στο JavaScript flat() Μέθοδοι πίνακα.

flat() Η μέθοδος δημιουργεί νέο πίνακα μέσω της εκτροπής του ενσωματωμένου πίνακα.

Παράδειγμα

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

Δοκιμάστε το προσωπικά

Από τον Ιανουάριο του 2020, όλες οι σύγχρονες περιηγητές υποστηρίζουν το JavaScript Array flat():

Chrome Edge Firefox Safari Opera
Chrome 69 Edge 79 Firefox 62 Safari 12 Opera 56
Σεπτέμβριος 2018 Ιανουάριος 2020 Σεπτέμβριος 2018 Σεπτέμβριος 2018 Σεπτέμβριος 2018

JavaScript array μέθοδος flatMap()

Το ES2019 προσθέτει στο JavaScript flatMap() Μέθοδοι πίνακα.

flatMap() Η μέθοδος πρώτα αντιγράφει όλους τους στοιχεία του πίνακα και στη συνέχεια δημιουργεί νέο πίνακα μέσω της εκτροπής του πίνακα.

Παράδειγμα

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

Δοκιμάστε το προσωπικά

Σταθερή array μέθοδος sort()

ES2019 Ενημέρωσητου μεθόδου sort() του Array.

Πριν από το 2019, η νομοθεσία επιτρεπόταν ανεπιτυχημένος αλγόριθμος ταξινόμησης, όπως ο QuickSort.

Μετά το ES2019, οι πλοηγοί πρέπει να χρησιμοποιούν σταθερούς αλγορίθμους ταξινόμησης:

Όταν τα στοιχεία ταξινομούνται με βάση μια τιμή, αυτά τα στοιχεία πρέπει να διατηρούν τη σχετική τους θέση με άλλα στοιχεία που έχουν την ίδια τιμή.

Παράδειγμα

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 }
];

Δοκιμάστε το προσωπικά

Στο παρακάτω παράδειγμα, όταν τα αποτελέσματα ταξινομούνται κατά τιμή, δεν επιτρέπεται η εμφάνιση άλλων ονομάτων σε άλλες σχετικές θέσεις, όπως:

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

Ανανεωμένη JSON.stringify()

ES2019 Ενημέρωσητου μεθόδου stringify() του JSON.

Πριν από το 2019, το JSON δεν μπορούσε να συμβολικοποιήσει χαρακτήρες που κωδικοποιούνται με '\'.

Παράδειγμα

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

Δοκιμάστε το προσωπικά

Πριν από το ES2019, η χρήση JSON.stringify() σε κώδικες UTF-8 (U+D800 έως U+DFFF) θα επιστρέφει κατεστραμμένους χαρακτήρες Unicode, όπως ���.

Με αυτή την τροποποίηση, οι συμβολοσειρές με κώδικες UTF-8 μπορούν να μετατραπούν με ασφάλεια με JSON.stringify() και να ανακτηθούν ως αρχικές συμβολοσειρές με JSON.parse().

Διαχωριστικό σύμβολο

Στις συμβολοσειρές κειμένου επιτρέπεται τώρα η χρήση διαχωριστικών γραμμής και παράγραφου (\u2028 και \u2029)

Πριν από το 2019, αυτά θεωρούνταν τελειώσεις γραμμής και προκαλούσαν σφάλματα εξαιρέσεων:

Παράδειγμα

// Αυτό είναι έγκυρο στο ES2019:
let text = "\u2028";

Δοκιμάστε το προσωπικά

Λήψη προσοχής

Τώρα, το JavaScript και το JSON έχουν τα ίδια κανόνια.

Πριν από το ES2019:

Η ερώτηση "text = JSON.parse('"\u2028"')" θα αναλύσει σε ''.

Η ερώτηση "text = '"\u2028"' θα δώσειΓλωσσικό σφάλμα

Ανανεωμένη Function toString()

ES2019 ΕνημέρωσηΗ μέθοδος Function toString()

Η μέθοδος toString() επιστρέφει μια αλφαριθμητική αλυσίδα που εκπροσωπεί τον κώδικα πηγής της συνάρτησης.

Από το 2019, το toString() πρέπει να επιστρέφει τον κώδικα πηγής της συνάρτησης, συμπεριλαμβανομένων των σχολίων, των κενών και των λεπτομερειών της γραμματικής.

Πριν από το 2019, διαφορετικοί περιηγητές επιστρέφουν διαφορετικές εκδοχές της συνάρτησης (π.χ. χωρίς σχόλια και κενά). Από το 2019, η συνάρτηση πρέπει να επιστρέφεται πλήρως όπως γράφτηκε.

Παράδειγμα

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

Δοκιμάστε το προσωπικά

  • Προηγούμενη σελίδα JS 2018
  • Επόμενη σελίδα JS 2020