จาวาสคริปต์ ECMAScript 2018


สารบัญ

    แสดงสารบัญ

หมายเลขเวอร์ชันจาวาสคริปต์

JS เวอร์ชันเก่าตั้งชื่อตามตัวเลข: ES5 (2009) และ ES6 (2015)

ตั้งแต่ปี 2559 เป็นต้นไป เวอร์ชันต่างๆ จะตั้งชื่อตามปี: ECMAScript 2016, 2017, 2018, 2019, ...

คุณสมบัติใหม่ใน ECMAScript 2018

บทนี้จะแนะนำคุณสมบัติใหม่ใน ECMAScript 2018:

  • การวนซ้ำแบบอะซิงโครนัส

  • สัญญาในที่สุด

  • คุณสมบัติส่วนที่เหลือของวัตถุ

  • คุณสมบัติ RegExp ใหม่

  • หน่วยความจำที่ใช้ร่วมกันจาวาสคริปต์


การวนซ้ำแบบอะซิงโครนัส JavaScript

ECMAScript 2018 เพิ่มตัววนซ้ำและตัววนซ้ำแบบอะซิงโครนัส

ด้วยการทำซ้ำแบบอะซิงโครนัส เราสามารถใช้ await คำหลักใน for/of วนซ้ำ

ตัวอย่าง

for await () {}

การวนซ้ำแบบอะซิงโครนัสของ JavaScript ได้รับการสนับสนุนในเบราว์เซอร์สมัยใหม่ทั้งหมดตั้งแต่เดือนมกราคม 2020:

Chrome 63 Edge 79 Firefox 57 Safari 11 Opera 50
Dec 2017 Jan 2020 Nov 2017 Sep 2017 Jan 2018

JavaScript Promise.ในที่สุด

ECMAScript 2018 สิ้นสุดการใช้งานออบเจ็กต์ Promise อย่างสมบูรณ์ด้วย Promise.finally:

ตัวอย่าง

let myPromise = new Promise();

myPromise.then();
myPromise.catch();
myPromise.finally();

Promise.finally ได้รับการสนับสนุนในเบราว์เซอร์สมัยใหม่ทั้งหมดตั้งแต่เดือนพฤศจิกายน 2018:

Chrome 63 Edge 18 Firefox 58 Safari 11.1 Opera 50
Dec 2017 Nov 2018 Jan 2018 Mar 2018 Jan 2018


คุณสมบัติส่วนที่เหลือของวัตถุ JavaScript

ECMAScript 2018 เพิ่มคุณสมบัติส่วนที่เหลือ

สิ่งนี้ช่วยให้เราสามารถทำลายวัตถุและรวบรวมสิ่งที่เหลืออยู่บนวัตถุใหม่:

ตัวอย่าง

let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }

คุณสมบัติส่วนที่เหลือของวัตถุได้รับการสนับสนุนในเบราว์เซอร์สมัยใหม่ทั้งหมดตั้งแต่เดือนมกราคม 2020:

Chrome 60 Edge 79 Firefox 55 Safari 11.1 Opera 47
Jul 2017 Jan 2020 Aug 2017 Mar 2018 Aug 2017

คุณสมบัติ JavaScript RegExp ใหม่

ECMAScript 2018 เพิ่มฟีเจอร์ RegExp ใหม่ 4 ประการ:

  • การหลบหนีคุณสมบัติ Unicode (\p{...})

  • มองหลังการยืนยัน (?<= ) และ (?

  • ชื่อกลุ่มจับภาพ

  • s (dotAll) ธง

ฟีเจอร์ RegExp ใหม่ได้รับการรองรับในเบราว์เซอร์สมัยใหม่ทั้งหมดตั้งแต่เดือนมิถุนายน 2020:

Chrome 64 Edge 79 Firefox 78 Safari 12 Opera 51
Jan 2018 Jan 2020 Jun 2020 Sep 2018 Feb 2018

เธรดจาวาสคริปต์

ใน JavaScript คุณใช้ Web Workers API เพื่อสร้างเธรด

เธรดผู้ปฏิบัติงานใช้เพื่อรันโค้ดในเบื้องหลังเพื่อให้โปรแกรมหลักสามารถดำเนินการต่อไปได้

เธรดผู้ปฏิบัติงานทำงานพร้อมกันกับโปรแกรมหลัก การดำเนินการส่วนต่างๆ พร้อมกัน ของโปรแกรมสามารถประหยัดเวลาได้

หน่วยความจำที่ใช้ร่วมกันจาวาสคริปต์

หน่วยความจำที่ใช้ร่วมกันเป็นคุณสมบัติที่ช่วยให้เธรด (ส่วนต่าง ๆ ของโปรแกรม) สามารถ เข้าถึงและอัพเดตข้อมูลเดียวกันในหน่วยความจำเดียวกัน

แทนที่จะส่งข้อมูลระหว่างเธรด คุณสามารถส่งผ่านวัตถุ SharedArrayBuffer ได้ ที่ชี้ไปยังหน่วยความจำที่บันทึกข้อมูลไว้

SharedArrayBuffer

วัตถุ SharedArrayBuffer แสดงถึงบัฟเฟอร์ข้อมูลไบนารีดิบที่มีความยาวคงที่ซึ่งคล้ายกับวัตถุ ArrayBuffer