หมายเลขเวอร์ชัน JavaScript
JS เวอร์ชันเก่าตั้งชื่อตามตัวเลข: ES5 (2009) และ ES6 (2015)
จากปี 2016 เวอร์ชันจะถูกตั้งชื่อตามปี: ECMAScript 2016, 2017, 2018, 2019, ...
คุณลักษณะใหม่ใน ES2021
- สัญญาใด ๆ ():
const first = await Promise.any([prom1,prom2,prom3]); - สตริงแทนที่ทั้งหมด ()
- ตัวคั่นตัวเลข (_)
คุณลักษณะใหม่ใน ES2022
- อาร์เรย์ที่()
- สตริงที่ ()
- RegExp /ด
- Object.hasOwn()
- ข้อผิดพลาด สาเหตุ
- รอนำเข้า
- วิธีการและฟิลด์ส่วนตัว
- การประกาศฟิลด์คลาส
คำเตือน
คุณสมบัติเหล่านี้ค่อนข้างใหม่
เบราว์เซอร์รุ่นเก่าอาจต้องใช้รหัสอื่น (Polyfill)
JavaScript สตริงแทนที่ทั้งหมด ()
ES2021 แนะนำวิธีการสตริงreplaceAll():
ตัวอย่าง
text = text.replaceAll("Cats","Dogs");
text = text.replaceAll("cats","dogs");เมธอด นี้replaceAll()ให้คุณระบุนิพจน์ทั่วไปแทนสตริงที่จะแทนที่
หากพารามิเตอร์เป็นนิพจน์ทั่วไป ต้องตั้งค่าสถานะส่วนกลาง (g) มิฉะนั้น TypeError จะถูกส่งออกไป
ตัวอย่าง
text = text.replaceAll(/Cats/g,"Dogs");
text = text.replaceAll(/cats/g,"dogs");
บันทึก
ES2020แนะนำวิธีการสตริงที่ matchAll()
ตัวคั่นตัวเลข JavaScript (_)
ES2021 เริ่มใช้ตัวคั่นตัวเลข (_) เพื่อทำให้ตัวเลขอ่านง่ายขึ้น:
ตัวอย่าง
const num = 1_000_000_000;ตัวคั่นตัวเลขใช้สำหรับการมองเห็นเท่านั้น
ตัวอย่าง
const num1 = 1_000_000_000;
const num2 = 1000000000;
(num1 === num2);ตัวคั่นตัวเลขสามารถวางไว้ที่ใดก็ได้ในตัวเลข:
ตัวอย่าง
const num1 = 1_2_3_4_5;บันทึก
ไม่อนุญาตให้ใช้ตัวคั่นตัวเลขที่จุดเริ่มต้นหรือจุดสิ้นสุดของตัวเลข
ใน JavaScript ตัวแปรเท่านั้นที่สามารถขึ้นต้นด้วย _
ตัวคั่นตัวเลขได้รับการสนับสนุนในเบราว์เซอร์สมัยใหม่ทั้งหมดตั้งแต่เดือนมกราคม 2020:
| Chrome 75 | Edge 79 | Firefox 74 | Safari 13.1 | Opera 67 |
| Jun 2019 | Jan 2020 | Oct 2019 | Sep 2019 | Jun 2019 |
อาร์เรย์ JavaScript ที่ ()
ES2022 เริ่มใช้วิธีอาร์เรย์at():
ตัวอย่าง
รับผลไม้องค์ประกอบที่สาม:
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits.at(2);รับผลไม้องค์ประกอบที่สาม:
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[2];เมธอดat()ส่งคืนองค์ประกอบที่จัดทำดัชนีจากอาร์เรย์
เมธอด จะคืน ค่าat()เหมือนกับ[]
วิธี นี้at()ได้รับการสนับสนุนในเบราว์เซอร์สมัยใหม่ทั้งหมดตั้งแต่เดือนมีนาคม 2565:
| Chrome 92 | Edge 92 | Firefox 90 | Safari 15.4 | Opera 78 |
| Apr 2021 | Jul 2021 | Jul 2021 | Mar 2022 | Aug 2021 |
บันทึก
หลายภาษาอนุญาตให้negative bracket indexingเช่น [-1] เข้าถึงองค์ประกอบจากส่วนท้ายของวัตถุ / อาร์เรย์ / สตริง
สิ่งนี้ไม่สามารถทำได้ใน JavaScript เนื่องจาก [] ใช้สำหรับการเข้าถึงทั้งอาร์เรย์และวัตถุ obj[-1] หมายถึงค่าของคีย์ -1 ไม่ใช่คุณสมบัติสุดท้ายของวัตถุ
วิธีการ นี้at()ถูกนำมาใช้ใน ES2022 เพื่อแก้ปัญหานี้
JavaScript สตริงที่ ()
ES2022 เริ่มใช้วิธีสตริงat():
ตัวอย่าง
รับตัวอักษรตัวที่สาม:
const name = "W3Schools";
let letter = name.at(2);รับตัวอักษรตัวที่สาม:
const name = "W3Schools";
let letter = name[2];เมธอดat()ส่งคืนองค์ประกอบที่จัดทำดัชนีจากสตริง
เมธอด จะคืน ค่าat()เหมือนกับ[]
วิธี นี้at()ได้รับการสนับสนุนในเบราว์เซอร์สมัยใหม่ทั้งหมดตั้งแต่เดือนมีนาคม 2565:
| Chrome 92 | Edge 92 | Firefox 90 | Safari 15.4 | Opera 78 |
| Apr 2021 | Jul 2021 | Jul 2021 | Mar 2022 | Aug 2021 |