ECMAScript คืออะไร?


118

ใน Visual Studio เมื่อฉันตั้งค่าประเภทสคริปต์ของฉันเป็น JavaScript สิ่งนี้จะปรากฏเป็นตัวเลือกใน Intellisense

การค้นหาอย่างรวดเร็วของ Google ได้ผลลัพธ์ที่ไม่ดีทำให้ฉันเชื่อว่าสิ่งนี้ไม่ได้รับความนิยมอย่างมากที่จะใช้

  • มันคืออะไร?
  • มีใครใช้บ้าง? (<script type="text/ecmascript">)
  • ทำไม?

2
ที่เกี่ยวข้อง : type = "text / ecmascript" vs type = "text / javascript"
DavidRR

การรู้ความแตกต่างระหว่าง ECMAScript และ Javascriptยังช่วยให้เข้าใจ ECMAScript
RBT

คำตอบ:


169

JavaScript เป็นชุดย่อยของ ECMAScript JavaScript โดยพื้นฐานแล้ว ECMAScript เป็นแกนหลัก แต่สร้างขึ้นจากมัน ภาษาเช่น ActionScript, JavaScript, JScript ล้วนใช้ ECMAScript เป็นหลัก จากการเปรียบเทียบ AS / JS / JScript เป็นรถ 3 คันที่แตกต่างกัน แต่ทั้งหมดใช้เครื่องยนต์เดียวกัน ... การตกแต่งภายนอกแต่ละคันนั้นแตกต่างกันและมีการปรับเปลี่ยนหลายอย่างเพื่อให้แต่ละคันมีเอกลักษณ์เฉพาะตัว

ประวัติคือ Brendan Eich สร้าง Mocha ซึ่งกลายเป็น LiveScript และต่อมา JavaScript Netscape นำเสนอ JavaScript ให้กับEcma Internationalซึ่งพัฒนามาตรฐานและเปลี่ยนชื่อเป็น ECMA-262 หรือที่เรียกว่า ECMAScript

สิ่งสำคัญคือต้องทราบว่า "JavaScript" ของ Brendan Eich ไม่ใช่ JavaScript แบบเดียวกับที่เป็นภาษาถิ่นของ ECMAScript เขาสร้างภาษาหลักซึ่งเปลี่ยนชื่อเป็น ECMAScript ซึ่งแตกต่างจาก JavaScript ที่ผู้จำหน่ายเบราว์เซอร์ใช้ในปัจจุบัน

http://en.wikipedia.org/wiki/ECMAScript


33
นั่นไม่ทำให้ Javascript เป็นชุดย่อยของ ECMAScript หรือไม่ถ้า ECMAScript เป็นแกนหลัก
Ryan Amos

15
JavaScript (ในอดีต) มีสิ่งที่ ECMAScript ไม่มี JavaScript (ในอดีตพยายามที่จะ) มีทุกสิ่งที่ ECMAScript มี ดังนั้นโพสต์จึงถูกต้อง ECMAScript เป็นส่วนย่อยของ JavaScript อย่างไรก็ตามทั้งสองยังคงอยู่ใกล้กัน (ในขณะที่ ActionScript ไม่ถือว่าเป็นภาษา ECMAScript อีกต่อไป แต่มันแตกต่างกันมากแม้ว่ามันจะมีรากฐานมาจากมันก็ตาม) คำว่า ES และ JS แทบจะใช้แทนกันได้
Nathan Wall

22
ฉันคิดว่าไม่ถูกต้องที่จะพูดว่า"ECMAScript เป็นส่วนย่อยของ JavaScript" แต่บทความวิกิพีเดียที่คุณกล่าวถึงการแสดงให้เห็นว่า ECMAScript เป็นมาตรฐานและ JavaScript เป็นที่รู้จักกันดีการดำเนินงานของมาตรฐานที่(ที่มีส่วนขยาย)
DavidRR

2
ฉันคิดว่าคุณตั้งใจจะพูดECMAScript is a superset of Javascript
Callat

6
เนื่องจาก Javascript ใช้ ECMAScript และสร้างขึ้นด้านบนด้วยฉันจะบอกว่า Javascript มีส่วนเหนือของ ECMAScript
RayLoveless


32

ECMAScript = ES:

  • ECMAScript เป็นมาตรฐานสำหรับภาษาสคริปต์

  • ภาษาเช่น Javascript เป็นไปตามมาตรฐาน ECMAScript

  • ECMA Standard ใช้เทคโนโลยีต้นกำเนิดหลายอย่างซึ่งเป็นที่รู้จักกันดีที่สุดคือ JavaScript (Netscape) และ JScript (Microsoft)

  • ECMA หมายถึง European Computer Manufacturer's Association


อีกด้านหนึ่ง:


JavaScript = JS:

  • JavaScript เป็นการใช้งาน ECMAScript Standard ที่ได้รับความนิยมมากที่สุด

  • คุณสมบัติหลักของ Javascript เป็นไปตามมาตรฐาน ECMAScript แต่ Javascript ยังมีคุณสมบัติเพิ่มเติมอื่น ๆ ที่ไม่อยู่ในข้อกำหนด / มาตรฐาน ECMA

  • ActionScript และ JScript เป็นภาษาอื่นที่ใช้ ECMAScript

  • JavaScript ถูกส่งไปยัง ECMA สำหรับการกำหนดมาตรฐาน แต่เนื่องจากปัญหาเกี่ยวกับเครื่องหมายการค้าที่มีชื่อ Javascript มาตรฐานจึงถูกเรียกว่า ECMAScript

  • ทุกเบราว์เซอร์มีตัวแปล JavaScript


สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการชำระเงินนี้คำตอบทั้งหมดของฉันที่นี่JavaScript และ ECMAScript แตกต่างกันอย่างไร


เกือบทุกเบราว์เซอร์รองรับ JavaScript แต่มีเบราว์เซอร์ CLI จำนวนมากเช่นลิงค์และ lynx ที่ไม่มีนอกจากนี้ยังมี: links2, w3m, elinks และ edbrowse เบราว์เซอร์ CLI ส่วนใหญ่ไม่รองรับ JS เช่นกัน
Cassio Seffrin

16

ECMA ย่อมาจาก - European Computer Manufacturer's Association ECMAScript เป็นมาตรฐานสำหรับภาษาสคริปต์ ระบุคุณลักษณะหลักที่ภาษาสคริปต์ควรมีให้และควรนำคุณลักษณะเหล่านั้นไปใช้อย่างไร เดิม Javascript ถูกสร้างขึ้นที่ Netscape และพวกเขาต้องการสร้างมาตรฐานของภาษา ดังนั้นพวกเขาจึงส่งภาษาไปยัง European Computer Manufacturer's Association (ECMA) เพื่อขอมาตรฐาน แต่มีปัญหาเกี่ยวกับเครื่องหมายการค้ากับชื่อ Javascript และมาตรฐานนี้ก็เรียกว่า ECMAScript ซึ่งเป็นชื่อที่มีอยู่ในปัจจุบันเช่นกัน

ดังนั้นคุณสามารถใช้ภาษาสคริปต์ใดก็ได้ที่ใช้มาตรฐาน ECMA เนื่องจากเว็บเบราว์เซอร์สนับสนุนการตีความ ECMAScript เมื่อคุณระบุ ( <script type="text/ecmascript">)


2

ECMA คือการจัดองค์กรที่เป็นมาตรฐานของ JavaScript พวกเขาตั้งชื่อภาษาว่า ECMAScript อย่างไรก็ตาม "JavaScript" เป็นคำที่ชนะ "การแข่งขันชื่อ"


1

นี่คือมุมมองที่แตกต่างกันในหัวข้อนี้ ไม่มากก็น้อยจากประสบการณ์ไม่สามารถอ้างอะไรได้ โปรแกรมตรวจสอบ JavaScript และทุกคนที่ทำงานกับ JavaScript จะบอกคุณว่า

alert("hello World");

เป็น JavaScript ที่ถูกต้อง และฉันก็เห็นด้วย

อย่างไรก็ตามโปรแกรมตรวจสอบ ECMAScript อาจบอกคุณว่าไม่ถูกต้องเนื่องจาก alert () ไม่ได้เป็นส่วนหนึ่งของ ECMAScript แต่เป็นคุณลักษณะโดยทั่วไปของ JavaScript สำหรับเบราว์เซอร์ มีคุณสมบัติมากมายของ JavaScript ซึ่งเหมาะสมกับสภาพแวดล้อมเบราว์เซอร์เท่านั้น, fi window.navigator, window.document, WebSocket, navigator.geolocation บางคนอาจบอกว่านี่ไม่ใช่ส่วนหนึ่งของ JavaScript แต่เป็นส่วนหนึ่งของ HTML5 ซึ่งไม่เป็นความจริงเนื่องจาก HTML5 เป็นเพียงภาษามาร์กอัป อย่างไรก็ตามคุณลักษณะใหม่ที่น่าสนใจเหล่านี้มักเรียกว่า HTML5 แม้ว่าจะมีการใช้งานใน JavaScript ก็ตาม

JavaScript ยังสามารถใช้สำหรับการเขียนสคริปต์ฝั่งเซิร์ฟเวอร์ จากนั้น geolcation หรือ apis สื่อทั้งหมดก็ไม่สมเหตุสมผล ดังนั้น JavaScript สำหรับการเขียนสคริปต์ฝั่งเซิร์ฟเวอร์จึงใกล้เคียงกับ ECMAScript มากขึ้นอีกครั้งซึ่งไม่มีคุณลักษณะของเบราว์เซอร์ทั่วไปนี้

ฉันไม่สามารถหาคำตอบได้ว่าวัตถุคณิตศาสตร์ (เช่น Math.sqrt (9)) เป็นส่วนหนึ่งของ ECAMScript หรือไม่หรือว่า ECMAScript เป็นเพียงการกำหนดไวยากรณ์ของภาษาและไม่มีการสร้างฟังก์ชันใด ๆ แต่ตัวตรวจสอบ ECMAScript หนึ่งตัวยอมรับ Math.sqrt (9) เป็น ECMAScript ที่ถูกต้องในขณะที่ var test = window.document; การตรวจสอบ ECMA ล้มเหลว

แม้ว่าสิ่งต่อไปนี้จะเชื่อมโยงไปยังเอกสาร JavaScript แต่ในความคิดของฉันก็คือ build ในชุดคุณลักษณะ (วัตถุและฟังก์ชัน) ของ ECMAScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / Global_Objects

ดังนั้นในความคิดของฉัน JavaScript มีความเชื่อมโยงอย่างใกล้ชิดกับเบราว์เซอร์ในขณะที่ ECMAScript มีเพียงชุดฟังก์ชันพื้นฐานเท่านั้น (ถ้ามี)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.