กลับไปหน้าบทความ

อ่าน 6 นาที

อีซีเอ็มเอสคริปต์

ECMAScript ( / ˈ ɛ k m ə s k r ɪ p t / ; ES ) [ 1 ] เป็นมาตรฐานสำหรับ ภาษา JavaScript ซึ่งมีจุดประสงค์เพื่อให้มั่นใจถึง ความสามารถในการทำงานร่วมกัน ของ เว็บเพจ...

อีซีเอ็มเอสคริปต์

อีซีเอ็มเอสคริปต์
กระบวนทัศน์หลายกระบวนทัศน์ : อิงตามต้นแบบ , เชิงฟังก์ชัน , เชิงคำสั่ง
ออกแบบโดยเบรนดัน ไอช์ , เอคม่า อินเตอร์เนชั่นแนล
ปรากฏครั้งแรกพ.ศ. 2540 ( 1997 )
วินัยในการพิมพ์อ่อนแอพลวัต
เว็บไซต์www.ecma-international.org/publications-and-standards/standards/ecma-262/
การนำไปใช้งานหลักๆ
JavaScript , ActionScript , JScript , QtScript , InScript , สคริปต์ของ Google Apps
ได้รับอิทธิพลจาก
ตัวเอง , HyperTalk , AWK , C , CoffeeScript , Perl , Python , Java , Scheme
อีเอ็มเมมาร์ค (รูปแบบไฟล์)
นามสกุลไฟล์
.es
สื่อประเภทอินเทอร์เน็ต
แอปพลิเคชัน/ecmascript
พัฒนาโดยซัน ไมโครซิสเต็มส์ , อีซีเอ็มเอ อินเตอร์เนชั่นแนล
การเผยแพร่ครั้งแรกมิถุนายน พ.ศ. 2540 ( มิถุนายน 1997 )
รุ่นล่าสุด
ฉบับที่ 16 มิถุนายน 2568 ( 2025-06 )
ประเภทของรูปแบบภาษาสคริปต์
เว็บไซต์มาตรฐาน

ECMAScript ( / ˈ ɛ k m ə s k r ɪ p t / ; ES ) [ 1 ]เป็นมาตรฐานสำหรับ ภาษา JavaScriptซึ่งมีจุดประสงค์เพื่อให้มั่นใจถึงความสามารถในการทำงานร่วมกันของเว็บเพจในเว็บเบราว์เซอร์ต่างๆ[ a ] ​​[ 2 ]ได้รับการกำหนดมาตรฐานโดย คณะกรรมการทางเทคนิค TC39ของEcma InternationalในเอกสารECMA-262โดยมี API i18n ("Intl") ที่ได้รับการกำหนดมาตรฐานในเอกสารECMA- 402 [ 3 ]

ECMAScript มักใช้สำหรับ การ เขียนสคริปต์ฝั่งไคลเอ็นต์บนเวิลด์ไวด์เว็บและกำลังถูกใช้มากขึ้นสำหรับ การ เขียนสคริปต์ฝั่งเซิร์ฟเวอร์และบริการโดยใช้สภาพแวดล้อมรันไทม์ เช่นNode.js [ 4 ] Deno [ 5 ]และBun [ 6 ]

มาตรฐาน ECMAScript ไม่ได้รวมถึงส่วนรับ/ส่งข้อมูล (I/O) ใดๆ เช่นการเชื่อมต่อเครือข่ายการจัดเก็บข้อมูลหรือ ส่วน กราฟิกในทางปฏิบัติ เว็บเบราว์เซอร์หรือระบบรันไทม์อื่นๆ จะมี API ของ JavaScript สำหรับการรับส่งข้อมูล (I/O)

มาตรฐาน

คณะกรรมการทางเทคนิค 39 ของ Ecma International เผยแพร่มาตรฐานหลายฉบับที่กำหนดJavaScriptซึ่งเรียกอย่างเป็นทางการว่าECMAScriptซึ่งรวมถึงไวยากรณ์ของภาษา ความหมาย ไลบรารี และเทคโนโลยีเสริมที่สนับสนุนภาษา[ 7 ] [ 8 ]รายละเอียดของมาตรฐานมีดังต่อไปนี้

ข้อกำหนดภาษา ECMAScript (ECMA-262)

กำหนดภาษา JavaScript ซึ่งเดิมเรียกว่า ECMAScript [ 9 ] ECMA-262 ระบุเฉพาะไวยากรณ์ภาษาและความหมายของอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันหลัก ( API ) เช่นArray, Function, และglobalThisในขณะที่การใช้งาน JavaScript ที่ถูกต้องจะเพิ่มฟังก์ชันการทำงานของตนเอง เช่นการรับ/ส่งข้อมูลและการจัดการ ระบบไฟล์

ข้อกำหนด API สำหรับการแปลภาษาของ ECMAScript (ECMA-402)

กำหนด API ของ JavaScript i18n ( Intl) และเป็นส่วนเสริมของ ECMA-262 [ 10 ]ฟังก์ชันการทำงานได้รับการคัดเลือกจาก API การทำให้เป็นสากล เช่น API ของ ไลบรารี International Components for Unicode (ICU) ของเฟรมเวิร์ก .NETหรือของแพลตฟอร์ม Java

ไวยากรณ์การแลกเปลี่ยนข้อมูล JSON (ECMA-404)

กำหนด ไวยากรณ์ JSON (JavaScript Object Notation) ซึ่งเป็น รูปแบบไฟล์มาตรฐานแบบเปิด ที่มนุษย์อ่านได้และรูปแบบการแลกเปลี่ยนข้อมูล[ 11 ]มันถูกพัฒนามาจาก JavaScript แต่เป็นรูปแบบข้อมูล ที่ไม่ขึ้นกับภาษาโปรแกรม

ข้อกำหนดรูปแบบแผนที่ซอร์สโค้ด (ECMA-426)

กำหนด รูปแบบ แผนที่ซอร์สโค้ดซึ่งใช้สำหรับการแมป ซอร์สโค้ด ที่แปลงแล้วกลับไปยังซอร์สโค้ดดั้งเดิม[ 12 ]รูปแบบแผนที่ซอร์สโค้ดดั้งเดิมถูกสร้างขึ้นโดย Joseph Schorr เพื่อใช้ใน โครงการ ย่อขนาด Closure Inspector เพื่อเปิดใช้งานการดีบักระดับซอร์สโค้ดของโค้ด JavaScript ที่ได้รับการปรับให้เหมาะสม ในปี 2024 รูปแบบแผนที่ซอร์สโค้ดได้รับการเผยแพร่เป็นมาตรฐาน Ecma

ประวัติศาสตร์

ข้อกำหนด ECMAScript เป็นข้อกำหนดมาตรฐานของภาษาสคริปต์ที่พัฒนาโดยBrendan EichจากNetscapeซึ่งเดิมชื่อ Mocha จากนั้นเปลี่ยนเป็น LiveScript และสุดท้ายคือ JavaScript [ 13 ]ในเดือนธันวาคม พ.ศ. 2538 Sun Microsystemsและ Netscape ประกาศ JavaScript ในข่าวประชาสัมพันธ์[ 14 ]ในเดือนพฤศจิกายน พ.ศ. 2539 Netscape ประกาศการประชุมของ องค์กรมาตรฐาน สากล Ecmaเพื่อพัฒนามาตรฐานของ JavaScript [ 15 ] ECMA-262 ฉบับแรกได้รับการรับรองโดยสมัชชาใหญ่ Ecma ในเดือนมิถุนายน พ.ศ. 2540 มีการเผยแพร่มาตรฐานภาษาหลายฉบับนับตั้งแต่นั้นมา ชื่อ "ECMAScript" เป็นการประนีประนอมระหว่างองค์กรที่เกี่ยวข้องกับการกำหนดมาตรฐานภาษา โดยเฉพาะ Netscape และ Microsoft ซึ่งข้อพิพาทของทั้งสององค์กรครอบงำการประชุมมาตรฐานในช่วงแรก Eich แสดงความคิดเห็นว่า "ECMAScript เป็นชื่อทางการค้าที่ไม่พึงประสงค์มาโดยตลอด ซึ่งฟังดูเหมือนโรคผิวหนัง " [ 16 ] ECMAScript ได้รับการกำหนดรูปแบบอย่างเป็นทางการผ่านความหมายเชิงปฏิบัติการโดยการทำงานที่มหาวิทยาลัยสแตนฟอร์ดและภาควิชาวิทยาการคอมพิวเตอร์อิมพีเรียลคอลเลจลอนดอนเพื่อการวิเคราะห์ความปลอดภัยและการกำหนดมาตรฐาน[ 17 ] "ECMA" ย่อมาจาก "European Computer Manufacturers Association" จนถึงปี 1994

วิวัฒนาการ

คณะกรรมการทางเทคนิคที่ 39 (TC39) ของ Ecma มีหน้าที่รับผิดชอบในการบำรุงรักษา ECMAScript [ 18 ]ข้อเสนอใหม่สำหรับภาษาจะผ่านกระบวนการเป็นขั้นๆ โดยแต่ละขั้นแสดงถึงความสมบูรณ์ของข้อกำหนดของข้อเสนอ ต้องมีการบรรลุฉันทามติภายในคณะกรรมการเพื่อผลักดันข้อเสนอไปสู่ขั้นต่อไป ข้อเสนอที่ผ่านถึงขั้นที่ 4 ซึ่งเป็นขั้นสุดท้าย จะถูกรวมไว้ในมาตรฐานเวอร์ชันถัดไป[ 19 ]นับตั้งแต่การเปิดตัวเวอร์ชัน 6 ในเดือนมิถุนายน 2015 เวอร์ชันหลักใหม่ได้รับการสรุปและเผยแพร่ทุกเดือนมิถุนายน[ 20 ]

คุณสมบัติ

ภาษา ECMAScript ประกอบด้วยคุณสมบัติเชิงโครงสร้างเชิงพลวัตเชิงฟังก์ชันและเชิงต้นแบบ[ 21 ]

บังคับและมีโครงสร้าง

ECMAScript JavaScript รองรับ การเขียนโปรแกรมแบบโครงสร้างสไตล์ Cก่อนหน้านี้ JavaScript รองรับเฉพาะการกำหนดขอบเขตฟังก์ชันโดยใช้คำหลัก `function` varเท่านั้น แต่ ECMAScript 2015 ได้เพิ่มคำหลัก `function` letและconst`function` ทำให้ JavaScript รองรับทั้งการกำหนดขอบเขตบล็อกและการกำหนดขอบเขตฟังก์ชัน JavaScript รองรับการแทรกเครื่องหมายเซมิโคลอนโดยอัตโนมัติซึ่งหมายความว่าเครื่องหมายเซมิโคลอนที่ปกติใช้ปิดท้ายคำสั่งในภาษา C อาจถูกละเว้นใน JavaScript ได้[ 22 ]

เช่นเดียวกับภาษาโปรแกรมแบบ C การควบคุมการไหลของ โปรแกรม ทำได้โดยใช้ คำสั่ง while`if` for, do`if` , `if` while, `if` , `if` และ `if` ฟังก์ชันมีการกำหนดประเภทข้อมูลแบบหลวมๆ และสามารถรับและส่งคืนค่าประเภทใดก็ได้ อาร์กิวเมนต์ที่ไม่ได้ระบุจะใช้ค่าเริ่มต้นเป็น ` null` ifelseswitchundefined

พิมพ์แบบอ่อน

ECMAScript เป็นภาษาที่มีการกำหนดประเภทแบบหลวมๆหมายความว่าประเภทบางอย่างจะถูกกำหนดโดยปริยายตามการดำเนินการที่กำลังทำอยู่ อย่างไรก็ตาม มีข้อสังเกตแปลกๆ หลายประการในการใช้งาน JavaScript ในการแปลงตัวแปรจากประเภทหนึ่งไปเป็นอีกประเภทหนึ่ง

พลวัต

ECMAScript เป็นภาษาที่มีการกำหนดประเภทแบบไดนามิก ดังนั้น ประเภทจึงเชื่อมโยงกับค่าแทนที่จะเป็นนิพจน์ ECMAScript รองรับวิธีการต่างๆ ในการทดสอบประเภทของวัตถุ รวมถึงduck typing [ 23 ]

การขนย้ายเสาเข็ม

นับตั้งแต่ ES 2015 เป็นต้นมา การแปลงโค้ด JavaScript (Transpiling) กลายเป็นเรื่องปกติมาก การแปลงโค้ดคือการคอมไพล์จากซอร์สโค้ดหนึ่งไปยังอีกซอร์สโค้ดหนึ่ง โดยใช้ JavaScript เวอร์ชันใหม่กว่า และตัวแปลงโค้ดจะเขียนโค้ดใหม่เพื่อให้รองรับเบราว์เซอร์รุ่นเก่า โดยปกติแล้ว ตัวแปลงโค้ดจะแปลงลงไปเป็น ES3 เพื่อรักษาความเข้ากันได้กับเบราว์เซอร์ทุกเวอร์ชัน สามารถตั้งค่าการแปลงโค้ดไปยังเวอร์ชันเฉพาะได้ตามความต้องการ การแปลงโค้ดจะเพิ่มขั้นตอนพิเศษให้กับกระบวนการสร้าง และบางครั้งก็ทำเพื่อหลีกเลี่ยงการใช้polyfills polyfills สร้างคุณสมบัติใหม่สำหรับสภาพแวดล้อมรุ่นเก่าที่ไม่มีคุณสมบัติเหล่านั้น polyfills ทำเช่นนี้ในขณะรันไทม์ในตัวแปลภาษา เช่น เบราว์เซอร์ของผู้ใช้หรือบนเซิร์ฟเวอร์ ในทางกลับกัน การแปลงโค้ดจะเขียนโค้ด ECMA ใหม่ในระหว่างขั้นตอนการสร้างก่อนที่จะถึงตัวแปลภาษา

ความสอดคล้อง

ในปี 2010 Ecma International เริ่มพัฒนาการทดสอบมาตรฐานสำหรับ Ecma 262 ECMAScript [ 24 ] Test262 เป็นชุดทดสอบการปฏิบัติตาม ECMAScript ที่สามารถใช้ตรวจสอบว่าการใช้งาน JavaScript เป็นไปตามข้อกำหนด ECMAScript มากน้อยเพียงใด ชุดทดสอบประกอบด้วยการทดสอบหลายพันรายการ โดยแต่ละรายการจะทดสอบข้อกำหนดเฉพาะบางประการของข้อกำหนด ECMAScript การพัฒนา Test262 เป็นโครงการของคณะกรรมการทางเทคนิค Ecma 39 (TC39) กรอบการทดสอบและการทดสอบแต่ละรายการได้รับการสนับสนุนจากองค์กรสมาชิกของ TC39 ให้กับ Ecma

Google ( ชุดทดสอบ Sputnik ) และ Microsoft ได้มีส่วนร่วมอย่างสำคัญ โดยทั้งสองบริษัทได้ร่วมกันสร้างชุดทดสอบหลายพันรายการ ชุดทดสอบ Test262 ประกอบด้วย38,014การทดสอบ ณ เดือนมกราคม 2020 [ 25 ]ข้อกำหนดECMAScriptจนถึง ES7 ได้รับการสนับสนุนอย่างดีในเว็บเบราว์เซอร์หลัก ตารางด้านล่างแสดงอัตราการสอดคล้องสำหรับซอฟต์แวร์เวอร์ชันปัจจุบันเมื่อเทียบกับ ECMAScript รุ่นล่าสุด

ความสอดคล้องของเอ็นจิ้นการเขียนสคริปต์
เครื่องมือเขียนสคริปต์ เอกสารอ้างอิง (ใบสมัคร) การปฏิบัติตาม[ 26 ]
ES5 [ 27 ]ES6 (2015) [ 28 ]ES2016+ [ 29 ]ES.Next [ 30 ] [ 31 ]
สไปเดอร์มังกี้Firefox 120 100%98%98%5%
วี8Google Chrome 117, Microsoft Edge 113, Opera 98 100%98%98%5%
JavaScriptCoreซาฟารี 17 99%100%98%11%

ดูเพิ่มเติม

หมายเหตุ

  1. ^ในอดีต ยังเคยถูกใช้เป็นมาตรฐานสำหรับ JScript ( Internet Explorer ) และ ActionScript ( Adobe Flash )
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=ECMAScript&oldid=1358884661 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ อีซีเอ็มเอสคริปต์

ECMAScript ( / ˈ ɛ k m ə s k r ɪ p t / ; ES ) [ 1 ] เป็นมาตรฐานสำหรับ ภาษา JavaScript ซึ่งมีจุดประสงค์เพื่อให้มั่นใจถึง ความสามารถในการทำงานร่วมกัน ของ เว็บเพจ...

มาตรฐาน

คณะกรรมการทางเทคนิค 39 ของ Ecma International เผยแพร่มาตรฐานหลายฉบับที่กำหนด JavaScript ซึ่งเรียกอย่างเป็นทางการว่า ECMAScript ซึ่งรวมถึงไวยากรณ์ของภาษา ความหมาย ไลบรารี และเทคโนโลยีเสริมที่สนับสนุนภาษา [ 7 ] [ 8 ] รายละเอียดของมาตรฐานมีดังต่อไปนี้

ข้อกำหนดภาษา ECMAScript (ECMA-262)

กำหนดภาษา JavaScript ซึ่งเดิมเรียกว่า ECMAScript [ 9 ] ECMA-262 ระบุเฉพาะไวยากรณ์ภาษาและความหมายของอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันหลัก ( API ) เช่น Array , Function , และ globalThis ในขณะที่การใช้งาน JavaScript ที่ถูกต้องจะเพิ่มฟังก์ชันการทำงานของตนเอง...

ข้อกำหนด API สำหรับการแปลภาษาของ ECMAScript (ECMA-402)

กำหนด API ของ JavaScript i18n ( Intl ) และเป็นส่วนเสริมของ ECMA-262 [ 10 ] ฟังก์ชันการทำงานได้รับการคัดเลือกจาก API การทำให้เป็นสากล เช่น API ของ ไลบรารี International Components for Unicode (ICU) ของ เฟรมเวิร์ก .NET หรือของแพลตฟอร์ม Java