JavaScript และ ECMAScript ต่างกันอย่างไร


462

ECMAScript และ JavaScript ต่างกันอย่างไร จากสิ่งที่ฉันอนุมาน ECMAScript เป็นมาตรฐานและ JavaScript เป็นการใช้งาน ถูกต้องหรือไม่

คำตอบ:


183

ECMAScript เป็นภาษาในขณะที่ JavaScript, JScript และแม้แต่ ActionScript 3 เรียกว่า "dialects" วิกิพีเดียให้ความกระจ่างเกี่ยวกับเรื่องนี้


9
สิ่งที่ดีจริงๆคือการจับคู่ที่ชัดเจนระหว่าง JavaScript และรุ่น ECMAScript เช่น ES5 สอดคล้องกับ JS1.5 ฯลฯ อาฉันพบแล้ว: en.wikipedia.org/wiki/JavaScript#Versions
Sam Joseph

2
@Sam - อัปเดตลิงก์ของ Sam: en.wikipedia.org/wiki/JavaScript#Version_history
รอบ

65
Downvoted and upvoted ของ Yang Li เนื่องจากคำตอบนี้บอกว่าน้อยมากและโดยพื้นฐานจะนำคุณไปยัง Wikipedia คำตอบของหยางหลี่นั้นมีรายละเอียดและมีประโยชน์มากกว่า นอกจากนี้ไม่ว่าจะเป็นหนึ่งในภาษา / มาตรฐานและภาษาอื่น ๆ หรือการใช้งาน ฯลฯ เปิดรับความคิดเห็นและไม่เป็นความจริงจากสิ่งที่ฉันเข้าใจ ในขณะที่คำตอบนี้ทำให้ดูเหมือนว่ามันเป็นความจริง ถูกต้องฉันถ้าฉันผิด ในความเป็นจริงฉันจะยืนยันว่าคำแนะนำโดยคำตอบนี้ไม่ได้เป็นที่นิยม ตามที่เห็นมากที่สุด ECMAScript มีมาตรฐานและ JavaScript เป็นภาษา
redfox05

1
@Rop - อัปเดตไปยังลิงก์นั้น: en.wikipedia.org/wiki/ECMAScript#Version_correspondence
HDave

5
ฉันไม่เห็นด้วย. ECMAScript เป็นข้อกำหนด JS, JScript, ActionScript เป็นภาษาที่ใช้ข้อกำหนดดังกล่าว
adripanico

611

ฉันคิดว่าบทเรียนประวัติศาสตร์เล็กน้อยมีกำหนด

JavaScript ชื่อเดิม Mocha และเปลี่ยนเป็น Livescript แต่ในที่สุดก็กลายเป็น JavaScript

สิ่งสำคัญคือต้องทราบว่า JavaScript มาก่อน ECMAscript และประวัติจะบอกคุณว่าทำไม

ในการเริ่มต้นจากจุดเริ่มต้น JavaScript ได้รับชื่อมาจาก Java และเริ่มแรก Brendan Eich (ผู้สร้าง JS) ถูกขอให้พัฒนาภาษาที่คล้ายกับ Java สำหรับเว็บสำหรับ Netscape

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

หลังจากภาษาเสร็จสมบูรณ์ทีมการตลาดของ Netscape ขอให้ Sun อนุญาตให้พวกเขาตั้งชื่อ JavaScript เป็นวิธีการตลาดและเหตุใดคนส่วนใหญ่ที่ไม่เคยใช้ JavaScript คิดว่ามันเกี่ยวข้องกับ Java

ประมาณหนึ่งหรือสองปีหลังจากการเปิดตัว JavaScript ในเบราว์เซอร์ IE ของ Microsoft ใช้ภาษานั้นและเริ่มสร้างการใช้งานของตนเองเช่น JScript ในขณะเดียวกัน IE ก็ครองตลาดและไม่นานหลังจาก Netscape ต้องปิดโครงการ

ก่อนที่ Netscape จะลงพวกเขาตัดสินใจเริ่มมาตรฐานที่จะนำทางพา ธ ของ JavaScript ชื่อ ECMAScript

ECMAScript มีการเผยแพร่ไม่กี่ครั้งและในปี 1999 พวกเขาเปิดตัวรุ่นสุดท้าย (ECMAScript 3) ก่อนที่พวกเขาจะเข้าสู่โหมดไฮเบอร์เนตในอีก 10 ปีข้างหน้า ในช่วง 10 ปีที่ผ่านมาไมโครซอฟท์ครองฉาก แต่ในขณะเดียวกันพวกเขาก็ไม่ได้ปรับปรุงผลิตภัณฑ์ดังนั้น Firefox จึงถือกำเนิด (นำโดย Eich) และกองรวมของเบราว์เซอร์อื่น ๆ เช่น Chrome, Opera

ECMAScript เปิดตัวรุ่นที่ 5 ในปี 2009 (รุ่นที่ 4 ถูกทอดทิ้ง) พร้อมคุณสมบัติเช่นโหมดเข้มงวด ตั้งแต่นั้นมา ECMAScript ได้รับแรงผลักดันมากมายและมีกำหนดจะเปิดตัวรุ่นที่ 6 ในอีกไม่กี่เดือนนับจากนี้ซึ่งมีการเปลี่ยนแปลงครั้งใหญ่ที่สุดเท่าที่เคยมีมา

คุณสามารถใช้รายการคุณลักษณะสำหรับ ECMAScript 6 ได้ที่นี่http://kangax.github.io/es5-compat-table/es6/และรองรับเบราว์เซอร์ คุณสามารถเริ่มเขียน Ecmascript 6 ได้เช่นเดียวกับ CoffeeScript และใช้คอมไพเลอร์เพื่อคอมไพล์ลงไปที่ Ecmascript 5

ไม่ว่า ECMAScript จะเป็นภาษาและ JavaScript เป็นภาษาถิ่นนั้นสามารถตรวจสอบได้ แต่ไม่สำคัญ หากคุณคิดเช่นนี้ต่อไปอาจทำให้คุณสับสน ไม่มีคอมไพเลอร์ที่เรียกใช้ ECMAScript และฉันเชื่อว่า JavaScript ถือเป็นภาษาที่ใช้มาตรฐานที่เรียกว่า ECMAScript

นอกจากนี้ยังมีภาษาที่เห็นได้ชัดเจนอื่น ๆ ที่ใช้ ECMAScript เช่น ActionScript (ใช้สำหรับ Flash)


1
สำหรับผู้ที่สนใจในวิธีการรวบรวม / transpile ใหม่ ES2015 ลงมาตรฐาน ECMAScript 5 รหัสคุณจะต้องการที่จะตรวจสอบบาเบล (ชื่อเดิม 6to5) ที่มีอยู่ในbabeljs.ioหรือ traceur ที่github.com/google/traceur-compiler ด้วยเครื่องมือเหล่านี้ที่มีอยู่คุณจะไม่สามารถเริ่มเขียน "JavaScript ใหม่" ได้ในขณะนี้และใช้ประโยชน์จากการเพิ่มภาษาล่าสุดทั้งหมด
58

1
ฉันไม่ทราบว่า Lua ใช้ ECMAScript ฉันไม่สามารถหาอะไรที่ยืนยันได้ แหล่งที่มาของคุณคืออะไร?
battmanz

2
@YangLi คุณเห็นด้วยกับคำตอบของ jerone ด้านล่างหรือไม่ว่าภาษา ECMAScript ไม่รวม DOM API ที่เราทุกคนใช้เมื่อเขียน JavaScript บริสุทธิ์
theJollySin

11
@TheJollySin ใช่เขาถูกต้อง ECMAScript ไม่ได้ออกแบบมาโดยเฉพาะสำหรับเบราว์เซอร์ดังนั้นวิธีการเช่น document.getElementById และ DOM API อื่น ๆ ไม่ได้เป็นส่วนหนึ่งของมาตรฐาน พวกเขาอยู่ในมาตรฐาน WHATWG พร้อมกับวิธีการเฉพาะเบราว์เซอร์อื่น ๆ เช่น localStorage ฯลฯ หากคุณใช้โหนดและไม่ใช้โมดูลที่นำเข้าใด ๆ แล้วคุณมี ECMAScript API เท่านั้น
หยางหลี่

1
หลายภาษาสามารถใช้มาตรฐานเดียวกันและไม่เป็นภาษาเดียวกันได้อย่างไร มาตรฐานกำหนดภาษา หากบางภาษาใช้มาตรฐาน C ++ จะเรียกว่า C ++ ไม่ใช่สิ่งอื่น ( เพราะเป็นเพราะใช้มาตรฐานนั้น) ดังนั้นฉันยังคงมีคำถามเดียวกัน ... ความแตกต่างคืออะไร?
Neme

157

ECMAScript = ES:

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

  • ภาษาอย่าง Javascript นั้นใช้มาตรฐาน ECMAScript

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

  • ECMA หมายถึงสมาคมผู้ผลิตคอมพิวเตอร์ในยุโรป

JavaScript = JS:

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

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

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

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

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

ES5 = ECMAScript 5:

  • ES5 เป็นรุ่นของ ECMAScript (เก่า / ปัจจุบัน)

  • ES5 เป็น JavaScript ที่คุณรู้จักและใช้งานในเบราว์เซอร์วันนี้

  • ES5 ไม่ต้องการขั้นตอนการสร้าง (transpilers) เพื่อแปลงเป็นสิ่งที่จะทำงานในเบราว์เซอร์ของวันนี้

  • ECMAScript เวอร์ชัน 5 เสร็จสิ้นในเดือนธันวาคม 2552 เบราว์เซอร์หลักทั้งหมด (Chrome, Safari, Firefox และ IE) ได้ติดตั้งเวอร์ชัน 5 แล้ว

  • เวอร์ชัน 5.1 เสร็จสิ้นในเดือนมิถุนายน 2011

ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:

  • ES2015 เป็นรุ่นของ ECMAScript (ใหม่ / อนาคต)

  • ควรใช้ชื่อ ES2015 อย่างเป็นทางการแทน ES6

  • ES6 จะจัดการข้อบกพร่องของภาษาหลักจำนวนมากที่กล่าวถึงใน TypeScript และ CoffeeScript

  • ES6 คือการทำซ้ำครั้งต่อไปของ JavaScript แต่จะไม่ทำงานในเบราว์เซอร์ของวันนี้

  • มี transpilers ค่อนข้างน้อยที่จะส่งออก ES5 สำหรับใช้ในเบราว์เซอร์

BabelJS:

  • BabelJS เป็น transpiler ที่ได้รับความนิยมมากที่สุดที่แปลง JavaScript ES6 ใหม่เป็น Old JavaScript ES5

  • BabelJS ทำให้เป็นไปได้สำหรับการเขียน JavaScript รุ่นต่อไปในวันนี้ (หมายถึง ES2015)

  • BabelJS ใช้ไฟล์ ES2015 และแปลงเป็นไฟล์ ES5

  • เบราว์เซอร์รุ่นปัจจุบันสามารถเข้าใจรหัส JavaScript ใหม่ (ES2015) ได้แม้ว่าจะยังไม่รองรับก็ตาม

TypeScript และ CoffeeScript:

  • ทั้งสองให้น้ำตาลน้ำตาลด้านบนของ ES5 และจากนั้นจะถูกแปลงเป็น JavaScript ที่สอดคล้องกับ ES5 

  • คุณเขียน TypeScript หรือ CoffeeScript จากนั้น transpiler จะเปลี่ยนเป็น ES5 JavaScript


3
" Javascript ยังมีคุณสมบัติเพิ่มเติมอื่น ๆ ที่ไม่ได้อยู่ในข้อกำหนด / มาตรฐานของ ECMA " คุณช่วยยกตัวอย่างบางส่วนให้กับคุณสมบัติเหล่านั้นได้หรือไม่?
Aruna Herath

1
" JavaScript เป็นการนำไปใช้ที่ได้รับความนิยมสูงสุดของมาตรฐาน ECMAScript " จากนั้นฉันจะหาแหล่งที่มาของการนำไปใช้งานนี้เรียกว่า 'JavaScript' ได้อย่างไร
bzeaman

7
ด้วยคำถามของฉันฉันกำลังพยายามชี้ให้เห็นความไม่ถูกต้องที่อาจเกิดขึ้นในถ้อยคำของคำตอบ คำว่า 'การใช้งาน' ถูกนำมาใช้ JavaScript จะกล่าวว่าเป็น 'ความนิยมมากที่สุดการดำเนินการ ' การดำเนินการคือ 'การทำให้เกิดข้อกำหนดทางเทคนิค' ซึ่งแปลเป็นซอฟแวร์ ดังนั้นฉันจึงสงสัยว่าซอฟต์แวร์นี้ชื่อ 'JavaScript' อยู่ที่ไหน
bzeaman

4
@Corrodias ฉันเห็นด้วยว่ามันให้ความรู้สึกเหมือนการหยิบจู้จี้ แต่ฉันคิดว่ามันสมเหตุสมผลที่จะทำเมื่อคำตอบเกี่ยวกับการกำหนดสิ่งต่าง ๆ JavaScript เป็นภาษาซึ่งปัจจุบันได้รับมาตรฐานโดย ECMAscript เทียบได้กับวิธีการที่ C เป็นภาษาที่ได้มาตรฐานตามมาตรฐาน ISO คำสำหรับ JavaScript ก็จะเป็น 'ภาษา' ไม่มีอะไรเพิ่มเติม
bzeaman

4
บทสรุปของ ES5, ES2015 และ BabelJS ล้างข้อมูลในหลาย ๆ เรื่องที่อาจเกิดขึ้นเมื่อเขาเข้าสู่โลกแห่งสคริปต์สคริปต์ JS วันนี้จากการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์ คำตอบที่ดี +1
RBT

45

JavaScript = ECMAScript + DOM + BOM ;

  • ข้อมูลจำเพาะภาษาECMAScript®กำหนดตรรกะทั้งหมดสำหรับการสร้างและแก้ไขวัตถุอาร์เรย์ตัวเลข ฯลฯ ...

  • DOM ( D ocument O bject M Odel) ทำให้มันเป็นไปได้ที่จะสื่อสารกับ HTML / เอกสาร XML (เช่นdocument.getElementById('id');)

  • BOM ( B rowser O bject M odel) เป็นลำดับชั้นของวัตถุเบราว์เซอร์ (เช่นวัตถุที่ตั้งวัตถุประวัติศาสตร์วัตถุองค์ประกอบแบบฟอร์ม)

ประวัติของการตั้งชื่อ JavaScript:

Mocha ► LiveScript ► JavaScript ► (ส่วนหนึ่งของผลการ JS) ECMA-262 ► ECMAScript ► JavaScript (ประกอบด้วย ECMAScript + DOM + BOM)


7
ดังนั้นสิ่งที่อยู่ใน node.js ไม่ใช่ JavaScript? เพราะมันไม่มี DOM API
Aruna Herath

4
ถูกต้อง. "Node.js สร้างขึ้นจาก V8 รุ่นใหม่" & "V8 ใช้ ECMAScript ตามที่ระบุใน ECMA-262, รุ่นที่ 5 ... " & "DOM ไม่ได้จัดทำโดยเครื่องมือ JavaScript แต่โดยเบราว์เซอร์แทนโดยเหมือนกันกับ V8 - Google Chrome ให้ DOM." (ที่มา: nodejs.org/en/docs/es6 & github.com/v8/v8/wiki/Introduction )
jerone

7
@jerone ฉันใช้ ECMAScript รุ่นใดเมื่อฉันเขียนโค้ด JavaScript มันแตกต่างกันไปตามเบราว์เซอร์หรือห้องสมุด?
theJollySin

4
คุณสามารถให้การอ้างอิงถึงJavaScript = ECMAScript + DOM API;?
Koray Tugay

2
@ koray-tugay ยกเว้นที่นี่มีเอกสารไม่มากเกี่ยวกับสิ่งที่ JavaScript คือ ฉันเดาว่าทำไมคำถามนี้จึงเป็นที่นิยม "สูตร" JavaScript = ECMAScript + DOM API;นั้นขึ้นอยู่กับเงื่อนไขโดยรวมที่ได้รับการยอมรับตามข้อกำหนดของเอกสารที่ JavaScript ประกอบด้วย
jerone

42

เทคนิค ECMAScript เป็นภาษาที่ทุกคนใช้และนำไปใช้ - เป็นข้อกำหนดที่สร้างขึ้นเมื่อหลายปีก่อนเมื่อ Netscape และ Microsoft นั่งลงและพยายามสร้างมาตรฐานสคริปต์ระหว่าง JavaScript (ภาษาสคริปต์ของ Netscape) และ JScript (Microsoft's)

ต่อมาเอ็นจิ้นเหล่านี้ทั้งหมดใช้ ECMAScript อย่างเห็นได้ชัดอย่างไรก็ตาม JavaScript (ชื่อ) ตอนนี้แฮงค์ด้วยเหตุผลการตั้งชื่อแบบดั้งเดิมและเป็นคำศัพท์ทางการตลาดของ Mozilla สำหรับส่วนขยายที่ไม่ได้มาตรฐานต่างๆซึ่งพวกเขาต้องการ )


12
Netscape และ Microsoft เข้ากันได้จริงครั้งเดียว!
โคลจอห์นสัน

2
ฉันคิดว่าแบรนดอนต้องการทำให้ JS เป็นมาตรฐานต่อหน้า Microsoft และสิ่งเดียวที่เขาหาได้คือ ECMA
Joe Simmons

30

ECMAScript คือ ES คืออะไร

ECMAScript เป็นมาตรฐานสำหรับภาษาสคริปต์และภาษา Javascript จะยึดตามมาตรฐาน ECMAScript

Javascript เหมือนกันกับ ECMAScript หรือไม่

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

JavaScript = ECMAScript + DOM API;

DOM API เช่น: document.getElementById('id');

ภาษาอื่น ๆ ใช้มาตรฐาน ECMAScript หรือไม่

  • ใช่มีภาษาอื่นนอกเหนือจาก JavaScript ที่ใช้มาตรฐาน ECMAScript เป็นหลัก
  • ActionScript (ใช้โดย Adobe Flash) และ JScript (ใช้โดย Microsoft) เป็นทั้งสองภาษาที่ใช้มาตรฐาน ECMAScript

เหตุใดจึงเรียกว่า ECMAScript

  • เดิมที Javascript สร้างขึ้นที่ Netscape และพวกเขาต้องการสร้างมาตรฐานภาษา ดังนั้นพวกเขาจึงส่งภาษาไปให้ผู้ผลิตA ssociation (ECMA) ของE uropean C omputer M anufacturer
  • แต่มีปัญหาเกี่ยวกับเครื่องหมายการค้าที่ชื่อ Javascript และมาตรฐานดังกล่าวเรียกว่า ECMAScript ซึ่งเป็นชื่อที่ถืออยู่ในปัจจุบันเช่นกัน
  • เนื่องจากปัญหาเครื่องหมายการค้าเครื่องหมายการค้าภาษาของ Microsoft เรียกว่า JScript - แม้ว่า JScript จะเป็นภาษาหลักของภาษาเดียวกันกับ Javascript

มีหลักสูตรเกี่ยวกับ JS และ ES6 ธรรมดา เราควรเลือกอันไหน ES6 ใช้ในการตั้งค่าระดับมืออาชีพมากกว่านี้หรือไม่? ขอบคุณ
MasterJoe2


11

ฉันรู้ว่านี่เป็นโพสต์เก่า แต่หวังว่าจะช่วยให้ใครบางคน

ใน js รุ่นต่าง ๆ ของ 1990 เริ่มออกมาเหมือน javascript จาก netscape สคริปต์ Js จาก Microsoft ดังนั้น ecmascript จึงถูกนำมาใช้เป็นมาตรฐาน แต่ ecmascript จะเป็นเพียงส่วนหนึ่งของจาวาสคริปต์ซึ่งระบุถึงซินแท็กซ์หลัก, ประเภท, วัตถุ ฯลฯ อาจเป็นไปได้ที่จะอธิบายการใช้งานที่ไม่สอดคล้องกันของจาวาสคริปต์ข้าม diff เบราว์เซอร์

เอกสารอ้างอิง - Wrox (จาวาสคริปต์ระดับมืออาชีพสำหรับนักพัฒนาเว็บ)


10

ในความเข้าใจของฉัน ECMAScript คือ "ทฤษฎี" หรือ "ข้อมูลจำเพาะ" และ Javascript คือ "Practicals" หรือ "Implementation"



7

คำตอบที่มีอยู่ถอดความประเด็นหลักค่อนข้างดี

ประเด็นหลักคือ ECMAScript เป็นภาษานามธรรมโดยไม่มีส่วนขยายเฉพาะโดเมนมันไม่มีประโยชน์ในตัวเอง เปคกำหนดเฉพาะภาษาและวัตถุหลักของมัน

ในขณะที่ JavaScript และ ActionScript และภาษาอื่น ๆ เพิ่มห้องสมุดเฉพาะของโดเมนลงไปเพื่อให้คุณสามารถใช้มันเพื่อสิ่งที่มีความหมาย

มีเอ็นจินECMAScriptจำนวนมากบางตัวเป็นโอเพ่นซอร์สส่วนอื่น ๆ เป็นกรรมสิทธิ์ คุณสามารถเชื่อมโยงมันเข้ากับโปรแกรมของคุณแล้วเพิ่มฟังก์ชั่นพื้นฐานของคุณไปยังวัตถุทั่วโลกเพื่อให้โปรแกรมของคุณกลายเป็นสคริปต์ได้ แม้ว่าส่วนใหญ่มักจะใช้ในเบราว์เซอร์


5

Javascript เป็นชื่อเดิมหมายถึงการใช้ประโยชน์จากความนิยมของจาวา ECMA เป็นหน่วยงานมาตรฐานที่ดูแลมาตรฐานที่วางไว้ในที่สุดดังนั้นชื่อจึงมีความเท่าเทียมกัน

การใช้งานมีชื่ออื่นเช่น V8 หรือ Rhino เป็นต้น


3

ECMAScriptเป็นมาตรฐานสำหรับJavaScrip t ดูข้อความเหล่านี้จากMDN :

ป้อนคำอธิบายรูปภาพที่นี่

JavaScript

JavaScript (JS)เป็นภาษาการเขียนโปรแกรมที่แปลแล้วหรือรวบรวมโดย JIT พร้อมฟังก์ชั่นชั้นหนึ่ง ในขณะที่มันเป็นที่รู้จักกันดีที่สุดในฐานะภาษาสคริปต์สำหรับเว็บเพจสภาพแวดล้อมที่ไม่ใช่เบราว์เซอร์จำนวนมากก็ใช้เช่น node.js Apache CouchDB และ Adobe Acrobat จาวาสคริปต์เป็นต้นแบบต้นแบบหลายกระบวนทัศน์ภาษาแบบไดนามิกสนับสนุนรูปแบบเชิงวัตถุที่จำเป็นและการประกาศ (เช่นการเขียนโปรแกรมการทำงาน) อ่านเพิ่มเติมเกี่ยวกับ JavaScript


ECMAScript

มาตรฐานสำหรับ JavaScript เป็นECMAScript ตั้งแต่ปี 2012 เบราว์เซอร์สมัยใหม่ทั้งหมดสนับสนุน ECMAScript 5.1 อย่างสมบูรณ์ เบราว์เซอร์รุ่นเก่ารองรับ ECMAScript 3 อย่างน้อยในวันที่ 17 มิถุนายน 2015 ECMA International ได้เผยแพร่ ECMAScript รุ่นที่หกที่สำคัญซึ่งเรียกว่า ECMAScript 2015 อย่างเป็นทางการและได้รับการขนานนามว่า ECMAScript 6 หรือ ES6 ตั้งแต่นั้นมามาตรฐาน ECMAScript จะเปิดตัวในรอบปี เอกสารนี้อ้างถึงฉบับร่างล่าสุดซึ่งปัจจุบันคือ ECMAScript 2018

สำหรับข้อมูลเพิ่มเติมเยี่ยมชมที่นี่


3

นี่คือสิ่งที่ฉันค้นพบ:

JavaScript: The Definitive Guideเขียนโดย David Flanagan ให้คำอธิบายที่กระชับมาก:

JavaScript ถูกสร้างขึ้นที่ Netscape ในยุคแรก ๆ ของเว็บและในทางเทคนิค "JavaScript" เป็นเครื่องหมายการค้าที่ได้รับอนุญาตจาก Sun Microsystems (ตอนนี้ Oracle) ใช้เพื่ออธิบายการใช้ภาษาของ Netscape (ตอนนี้ Mozilla) Netscape ส่งภาษาสำหรับการกำหนดมาตรฐานไปยัง ECMA และเนื่องจากปัญหาเกี่ยวกับเครื่องหมายการค้ารุ่นภาษาที่ได้มาตรฐานจึงติดอยู่กับชื่อ "ECMAScript" ที่น่าอึดอัดใจ ด้วยเหตุผลทางการค้าเดียวกันภาษารุ่นของ Microsoft จึงเป็นที่รู้จักอย่างเป็นทางการว่า "JScript" ในทางปฏิบัติทุกคนเรียกภาษา JavaScript

บล็อกโพสต์โดย Microsoft ดูเหมือนว่าจะเห็นด้วยกับสิ่งที่ฟลานาแกนอธิบายด้วยการพูดว่า ..

ECMAScript เป็นชื่ออย่างเป็นทางการสำหรับภาษา JavaScript ที่เราทุกคนรู้จักและชื่นชอบ

.. ซึ่งทำให้ฉันคิดว่าเหตุการณ์ที่เกิดขึ้นทั้งหมดJavaScriptในนี้โพสต์อ้างอิง (โดยไมโครซอฟท์อีกครั้ง) ECMASCriptจะต้องถูกแทนที่ด้วย จริงๆแล้วพวกเขาดูเหมือนจะต้องระมัดระวังกับการใช้ECMAScriptเฉพาะในนี้ล่าสุดมากขึ้นและทางเทคนิคเพิ่มเติมหน้าเอกสาร

ดูเหมือนว่าw3schools.comจะเห็นด้วยกับคำจำกัดความข้างต้น:

JavaScript ถูกคิดค้นโดย Brendan Eich ในปี 1995 และกลายเป็นมาตรฐาน ECMA ในปี 1997 ECMA-262 เป็นชื่ออย่างเป็นทางการของมาตรฐาน ECMAScript เป็นชื่อทางการของภาษา

ที่สำคัญนี่คือชื่ออย่างเป็นทางการของภาษา

หากคุณตรวจสอบหน้าเวอร์ชัน JavaScript ของ Mozillaคุณจะพบคำสั่งต่อไปนี้:

เลิก คุณสมบัติการกำหนดรุ่นและการเลือกใช้ภาษาอย่างชัดเจนนั้นเป็นภาษาเฉพาะของ Mozilla และอยู่ในระหว่างการลบออก Firefox 4 เป็นเวอร์ชันสุดท้ายซึ่งอ้างถึงเวอร์ชัน JavaScript (1.8.5) ด้วยมาตรฐาน ECMA ใหม่ตอนนี้คุณสมบัติภาษา JavaScript มักถูกกล่าวถึงด้วยคำจำกัดความเริ่มต้นในรุ่น ECMA-262 เช่น ECMAScript 2015

และเมื่อคุณเห็นบันทึกย่อประจำรุ่นล่าสุดคุณจะเห็นการอ้างอิงถึงมาตรฐาน ECMAScript เช่น:

  • คุณสมบัติ ES2015 Symbol.toStringTag ถูกนำไปใช้งาน (ข้อผิดพลาด 1114580)

  • ES2015 TypedArray.prototype.toString () และ TypedArray.prototype.toLocaleString () ได้ถูกนำมาใช้ (ข้อผิดพลาด 1121938)

Mozilla Web Docs มีหน้าเว็บที่อธิบายความแตกต่างระหว่าง ECMAScript และ JavaScript:

อย่างไรก็ตามคำว่า "JavaScript" ที่เข้าใจในบริบทเว็บเบราว์เซอร์นั้นมีองค์ประกอบที่แตกต่างกันมาก หนึ่งในนั้นคือภาษาหลัก (ECMAScript) และอีกอันคือคอลเล็กชันของเว็บ API รวมถึง DOM (Document Object Model Model)

ข้อสรุป

เพื่อความเข้าใจของฉันผู้คนใช้คำว่า JavaScript อย่างอิสระเพื่ออ้างถึงข้อกำหนด ECMAScript หลัก

ฉันจะบอกว่าการใช้งาน JavaScript ที่ทันสมัยทั้งหมด (หรือเครื่องมือ JavaScript) ในความเป็นจริงการใช้งาน ECMAScript ตรวจสอบคำจำกัดความของV8 Engineจาก Google ตัวอย่างเช่น:

V8 เป็นเครื่องมือ JavaScript ประสิทธิภาพสูงโอเพ่นซอร์สของ Google เขียนด้วย C ++ และใช้ใน Google Chrome เบราว์เซอร์โอเพ่นซอร์สจาก Google และ Node.js รวมถึงอื่น ๆ ใช้ ECMAScript ตามที่ระบุใน ECMA-262

ดูเหมือนว่าพวกเขาจะใช้คำว่า JavaScript และ ECMAScript แทนกันได้และฉันจะบอกว่าจริงๆแล้วมันเป็นเอ็นจิ้น ECMAScript?

ดังนั้นเอนจิ้น JavaScript ส่วนใหญ่จึงใช้มาตรฐาน ECMAScript แต่แทนที่จะเรียกพวกเขาว่าเอ็นจิ้น ECMAScript พวกเขาเรียกตัวเองว่าเอ็นจิ้น JavaScript นี้คำตอบยังสนับสนุนวิธีการที่ผมเห็นสถานการณ์


2

ฉันสงสัยว่าเราเคยใช้คำว่า "ECMAScript" หากไม่ใช่เพราะชื่อ "JavaScript" นั้นเป็นของ Sun สำหรับเจตนาและวัตถุประสงค์ทั้งหมดภาษาคือ JavaScript คุณไม่ไปที่ร้านหนังสือที่กำลังมองหาหนังสือ ECMAScript ใช่ไหม?

มันง่ายเกินไปที่จะบอกว่า "JavaScript" เป็นการใช้งาน JScript เป็นการใช้งานของ Microsoft


1
ฉันไม่มีปัญหากับคำว่า ECMAscript ... คุณเคยคิดไหมว่ามันแปลกที่จะพูดกับ MPEG แทนที่จะเป็นวิดีโอ?
ryansstack

7
ฮ่าฮ่า ไม่ใช่เบรนแดนไอช์ที่พูดว่า ECMAScript ฟังดูเหมือนเป็นโรคผิวหนังหรือไม่? :-)
Nosredna

7
Sun เป็นเจ้าของคำว่า Java ไม่ใช่ JavaScript
James R. Clayton

1
@ JamesR.Clayton JavaScript ถูกสร้างขึ้นที่ Netscape ในยุคแรก ๆ ของเว็บและในทางเทคนิค“ JavaScript” เป็นเครื่องหมายการค้าที่ได้รับอนุญาตจาก Sun Microsystems (ตอนนี้ Oracle) ใช้เพื่ออธิบายการใช้ภาษาของ Netscape (ตอนนี้ Mozilla)
Koray Tugay

1

JavaScript เป็นสาขาหนึ่งของภาษาที่สร้างขึ้นรอบ ๆ มาตรฐาน ECMAScript ฉันเชื่อว่า ECMA เป็นสมาคมผู้ผลิตคอมพิวเตอร์ในยุโรปไม่ใช่ว่ามันเกี่ยวข้องหรืออะไรก็ตาม

อย่าลืมภาษาอื่นที่เป็นที่นิยมซึ่งสร้างขึ้นตามมาตรฐานสคริปต์ ECMA คือ ActionScript ซึ่งใช้ใน Adobe Flash / Flex

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