ECMAScript 2020

  • หน้าก่อน JS 2019
  • หน้าต่อไป JS 2021

เลขรุ่น JavaScript

รุ่น JS ที่เก่าตั้งชื่อด้วยตัวเลข: ES5 (2009) และ ES6 (2015).

ตั้งแต่ปี 2016 ตั้งแต่ต้นตามหลังจากนั้น รุ่นบริหารจะถูกตั้งชื่อตามปี: ECMAScript 2016, 2017, 2018, 2019, ...

คุณสมบัติใหม่ใน ES2020:

คำเตือน

คุณสมบัติเหล่านี้เป็นคุณสมบัติที่ใหม่ของพวกเขา。

บราวเซอร์ที่เก่าอาจจะต้องใช้โค้ดแทน (Polyfill).

BigInt ทาง JavaScript

ตัวแปร BigInt ของ JavaScript ใช้เก็บค่าตัวเลขเต็มที่ใหญ่เกินไปและไม่สามารถแสดงด้วยตัวเลข JavaScript ปกติได้。

ตัวเลขเต็มของ JavaScript สามารถที่จะเก็บค่าที่เท่ากับ 15 ตัวเลขเท่านั้น。

ตัวอย่าง Integer

let x = 999999999999999;
let y = 9999999999999999; // ใหญ่เกินไป

ทดสอบเอง

ตัวอย่าง BigInt

let x = 9999999999999999;
let y = 9999999999999999n;

ทดสอบเอง

ถ้าต้องการสร้าง BigInt โปรดใช้ n ติดตั้งลงท้ายของตัวเลขเต็มหรือเรียก BigInt():

實例

let x = 1234567890123456789012345n;
let y = BigInt(1234567890123456789012345);

ทดสอบเอง

ประเภทของ JavaScript ของ BigInt คือ "bigint":

實例

let x = BigInt(999999999999999);
let type = typeof x;

ทดสอบเอง

ตั้งแต่เดือนกันยายน 2020 ตั้งแต่ต้นตามหลังจากนั้น ทุกบราวเซอร์ปัจจุบันเข้าถึง BigInt:

Chrome Edge Firefox Safari Opera
Chrome 67 Edge 79 Firefox 68 Safari 14 Opera 54
2018 年 5 月 2020 年 1 月 2019 年 7 月 กันยายน 2020 2018 年 6 月

วิธีการการใช้งาน matchAll() ของ JavaScript ตัวแปรของคำแถลง

在 ES2020 之前,沒有字符串方法方法可用於搜索字符串中所有出現的字符串。

實例

const iterator = text.matchAll("Cats");

ทดสอบเอง

如果參數是正則表達式,則必須設定全局標誌 (g),否則會拋出 TypeError。

實例

const iterator = text.matchAll(/Cats/g);

ทดสอบเอง

如果要進行不區分大小寫的搜索,則必須設定不區分大小寫標誌 (i):

實例

const iterator = text.matchAll(/Cats/gi);

ทดสอบเอง

提示:ES2021 引入了字符串方法 replaceAll()。

空值合併運算子(Nullish Coalescing Operator)(?? 運算子)

如果第一個參數不是空值(nullundefined),則 ?? 運算子返回第一個參數。

否則返回第二個。

實例

let name = null;
let text = "missing";
let result = name ?? text;

ทดสอบเอง

自 2020 年 3 月以來,所有現代瀏覽器都支持 nullish 運算子:

Chrome Edge Firefox Safari Opera
Chrome 80 Edge 80 Firefox 72 Safari 13.1 Opera 67
2020 年 2 月 2020 年 2 月 2020 年 1 月 มีนาคม 2020 มีนาคม 2020

可選鏈運算子(Optional Chaining Operator)(?. 運算子)

如果對象為 undefinednull,則可選鏈運算子返回 undefined(而不是拋出錯誤)。

實例

const car = {type:"Fiat", model:"500", color:"white"};
let name = car?.name;

ทดสอบเอง

自 2020 年 3 月以來,所有現代瀏覽器都支持 ?.= ตัวเลข:

Chrome Edge Firefox Safari Opera
Chrome 80 Edge 80 Firefox 74 Safari 13.1 Opera 67
2020 年 2 月 2020 年 2 月 มีนาคม 2020 มีนาคม 2020 มีนาคม 2020

ตัวเลข AND การบวกค่า (&&= ตัวเลข)

逻辑 AND 赋值運算子用於兩個值之間。

如果第一個值为 trueแล้วจะจัดสรรค่าที่สอง

逻辑 AND 赋值實例

let x = 100;
x &&= 5;

ทดสอบเอง

ตั้งแต่กันยายน 2020 ตัวเลขทุกตัวของเบราเซอร์สมัยใหม่ทุกตัวเข้าถึง &&= ตัวเลข:

Chrome Edge Firefox Safari Opera
Chrome 85 Edge 85 Firefox 79 Safari 14 Opera 71
สิงหาคม 2020 สิงหาคม 2020 มีนาคม 2020 กันยายน 2020 กันยายน 2020

逻辑 OR 赋值運算子(||= 運算子)

逻辑 OR 赋值運算子用於兩個值之間。

如果第一個值为 falseแล้วจะจัดสรรค่าที่สอง

逻辑 OR 赋值實例

let x = 10;
x ||= 5;

ทดสอบเอง

ตั้งแต่กันยายน 2020 ตัวเลขทุกตัวของเบราเซอร์สมัยใหม่ทุกตัวเข้าถึง ||= ตัวเลข:

Chrome Edge Firefox Safari Opera
Chrome 85 Edge 85 Firefox 79 Safari 14 Opera 71
สิงหาคม 2020 สิงหาคม 2020 มีนาคม 2020 กันยายน 2020 กันยายน 2020

ตัวเลขการบวกค่าที่ขาดค่า(??= ตัวเลข)

ตัวเลขการบวกค่าที่ขาดค่า(Nullish Coalescing Assignment Operator)ใช้สำหรับสองค่า

ถ้าค่าแรก undefined หรือ undefined nullแล้วจะจัดสรรค่าที่สอง

ตัวอย่างการใช้งานการบวกค่าที่ขาดค่า การบวกค่า

let x = 10;
x ??= 5;

ทดสอบเอง

ตั้งแต่กันยายน 2020 ตัวเลขทุกตัวของเบราเซอร์สมัยใหม่ทุกตัวเข้าถึง ??= ตัวเลข:

Chrome Edge Firefox Safari Opera
Chrome 85 Edge 85 Firefox 79 Safari 14 Opera 71
สิงหาคม 2020 สิงหาคม 2020 มีนาคม 2020 กันยายน 2020 กันยายน 2020
  • หน้าก่อน JS 2019
  • หน้าต่อไป JS 2021