6 คะแนน โดย GN⁺ 2025-06-30 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ECMAScript 2025 ได้รับการอนุมัติเป็นมาตรฐานอย่างเป็นทางการเมื่อวันที่ 25 มิถุนายน 2025 พร้อมเพิ่ม ฟีเจอร์ใหม่ หลากหลายรายการ
  • ปรับปรุงวิธีการนำเข้าทรัพยากรที่ไม่ใช่ JavaScript ผ่าน Import attributes และ JSON modules
  • Iterator helper methods ช่วยเพิ่มประสิทธิภาพในการจัดการข้อมูลขนาดใหญ่และงานวนซ้ำหลากหลายรูปแบบ
  • มีการเพิ่มเมธอดใหม่จำนวนมากให้กับอ็อบเจ็กต์ built-in หลักอย่าง Set และ RegExp เพื่อให้ใช้งานได้สะดวกยิ่งขึ้น
  • รองรับ เลขทศนิยมลอยตัว 16 บิต (float16) ช่วยขยายทั้งประสิทธิภาพและความยืดหยุ่นในการจัดการข้อมูล

การอนุมัติอย่างเป็นทางการของ ECMAScript 2025

  • เมื่อวันที่ 25 มิถุนายน 2025 ในการประชุมใหญ่ครั้งที่ 129 ของ Ecma International ได้อนุมัติ ECMAScript 2025 เป็นมาตรฐานอย่างเป็นทางการ

ฟีเจอร์ใหม่ที่สำคัญ

Import attributes และ JSON modules

  • Import attributes เป็นไวยากรณ์ที่ใช้ระบุแอตทริบิวต์ เช่น type สำหรับอาร์ติแฟกต์ที่ไม่ใช่ JavaScript (ทรัพยากรเป้าหมายของ import)
  • รองรับ JSON modules อย่างเป็นทางการเป็นครั้งแรก ทำให้สามารถโหลดข้อมูล JSON ได้สะดวกในรูปแบบ import configData from './data.json' with { type: 'json' };
  • สามารถระบุแอตทริบิวต์แบบเดียวกันได้กับ dynamic import (import() call) เช่นกัน

Iterator helper methods

  • มีการเพิ่ม helper methods หลากหลายแบบที่คล้ายกับเมธอดของ Array แต่ปรับมาเฉพาะสำหรับ iterator
    • เมธอดที่มีอยู่แล้ว เช่น filter, map, flatMap, some, every, find, reduce, forEach
    • รวมถึงเมธอดใหม่สำหรับ iterator โดยเฉพาะ เช่น drop, take, toArray
  • สามารถใช้งานได้โดยตรงกับ iterable objects ทุกชนิด เช่น Set, Map
  • ประมวลผลข้อมูลตามลำดับเท่าที่จำเป็นโดยไม่ต้องสร้างอาร์เรย์กลาง จึงเหมาะกับ ข้อมูลขนาดใหญ่

การขยายเมธอดของ Set

  • เพิ่มเมธอดสำหรับการดำเนินการ union, intersection, difference และ symmetric difference
    • Set.prototype.union(other), intersection(other), difference(other), symmetricDifference(other)
  • มีเมธอดสำหรับตรวจสอบ subset/superset/disjoint
    • isSubsetOf(other), isSupersetOf(other), isDisjointFrom(other)

การปรับปรุง regular expression

RegExp.escape()

  • เพิ่ม RegExp.escape() สำหรับ escape สตริงใดๆ โดยอัตโนมัติ เพื่อให้สามารถ ใช้งานใน regular expression ได้อย่างปลอดภัย

Inline flags ภายในแพตเทิร์น

  • สามารถใช้ แฟลกเฉพาะจุด (i, u เป็นต้น) กับเพียงบางส่วนของแพตเทิร์นใน regular expression ได้
    • ตัวอย่าง: /^x(?i:HELLO)x$/ จะจับคู่แบบไม่แยกตัวพิมพ์เล็ก-ใหญ่เฉพาะส่วน HELLO

รองรับ capture group ชื่อซ้ำ

  • สามารถใช้ capture group ที่มีชื่อเดียวกันได้ในแต่ละทางเลือก (branch) ของ regular expression
    • ตัวอย่าง: /(?<chars>a+)|(?<chars>b+)/v

Promise.try()

  • เพิ่ม Promise.try() ซึ่งช่วยให้เริ่มต้นการจัดการ โค้ดแบบ synchronous/asynchronous ผสมกัน ได้ภายใต้ Promise chain เดียว
    • เดิมการจัดการ synchronous exception ทำได้ค่อนข้างยุ่งยาก แต่ตอนนี้เขียนได้กระชับขึ้น

รองรับเลขทศนิยมลอยตัว 16 บิต (float16)

  • ใช้ Math.f16round() เพื่อปัดเศษเลขทศนิยมลอยตัว 16 บิตได้
  • เพิ่มชนิด Float16Array ให้กับ TypedArray
  • เพิ่มเมธอด getFloat16() และ setFloat16() ให้กับ DataView

เอกสารอ้างอิงและหนังสือฟรี

  • มีหนังสือออนไลน์ฟรี “Exploring JavaScript (ES2025 Edition)” ให้ใช้งาน
    • อธิบายรายละเอียดเกี่ยวกับประวัติและพัฒนาการของ JavaScript รวมถึงฟีเจอร์ใหม่ของ ECMAScript
    • มีตัวอย่างการใช้งานจริงและคำอธิบายแยกตามฟีเจอร์ใหม่ที่สำคัญ

1 ความคิดเห็น

 
smboy86 2025-06-30

โปรเจ็กต์ก่อนหน้านี้ผมไม่รู้เลยว่าทำไมถึงโหลด json ไม่ได้
ที่แท้มันไม่รองรับมาตั้งแต่แรกนี่เอง.. หืมๆ