ECMAScript และ JavaScript ต่างกันอย่างไร จากสิ่งที่ฉันอนุมาน ECMAScript เป็นมาตรฐานและ JavaScript เป็นการใช้งาน ถูกต้องหรือไม่
ECMAScript และ JavaScript ต่างกันอย่างไร จากสิ่งที่ฉันอนุมาน ECMAScript เป็นมาตรฐานและ JavaScript เป็นการใช้งาน ถูกต้องหรือไม่
คำตอบ:
ECMAScript เป็นภาษาในขณะที่ JavaScript, JScript และแม้แต่ ActionScript 3 เรียกว่า "dialects" วิกิพีเดียให้ความกระจ่างเกี่ยวกับเรื่องนี้
ฉันคิดว่าบทเรียนประวัติศาสตร์เล็กน้อยมีกำหนด
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)
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
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)
JavaScript = ECMAScript + DOM API;
?
JavaScript = ECMAScript + DOM API;
นั้นขึ้นอยู่กับเงื่อนไขโดยรวมที่ได้รับการยอมรับตามข้อกำหนดของเอกสารที่ JavaScript ประกอบด้วย
เทคนิค ECMAScript เป็นภาษาที่ทุกคนใช้และนำไปใช้ - เป็นข้อกำหนดที่สร้างขึ้นเมื่อหลายปีก่อนเมื่อ Netscape และ Microsoft นั่งลงและพยายามสร้างมาตรฐานสคริปต์ระหว่าง JavaScript (ภาษาสคริปต์ของ Netscape) และ JScript (Microsoft's)
ต่อมาเอ็นจิ้นเหล่านี้ทั้งหมดใช้ ECMAScript อย่างเห็นได้ชัดอย่างไรก็ตาม JavaScript (ชื่อ) ตอนนี้แฮงค์ด้วยเหตุผลการตั้งชื่อแบบดั้งเดิมและเป็นคำศัพท์ทางการตลาดของ Mozilla สำหรับส่วนขยายที่ไม่ได้มาตรฐานต่างๆซึ่งพวกเขาต้องการ )
ECMAScript คือ ES คืออะไร
ECMAScript เป็นมาตรฐานสำหรับภาษาสคริปต์และภาษา Javascript จะยึดตามมาตรฐาน ECMAScript
Javascript เหมือนกันกับ ECMAScript หรือไม่
JavaScript = ECMAScript + DOM API;
DOM API เช่น: document.getElementById('id');
ภาษาอื่น ๆ ใช้มาตรฐาน ECMAScript หรือไม่
เหตุใดจึงเรียกว่า ECMAScript
JavaScript รุ่นต่าง ๆ เป็นการใช้งานของมาตรฐาน ECMAScript
ฉันรู้ว่านี่เป็นโพสต์เก่า แต่หวังว่าจะช่วยให้ใครบางคน
ใน js รุ่นต่าง ๆ ของ 1990 เริ่มออกมาเหมือน javascript จาก netscape สคริปต์ Js จาก Microsoft ดังนั้น ecmascript จึงถูกนำมาใช้เป็นมาตรฐาน แต่ ecmascript จะเป็นเพียงส่วนหนึ่งของจาวาสคริปต์ซึ่งระบุถึงซินแท็กซ์หลัก, ประเภท, วัตถุ ฯลฯ อาจเป็นไปได้ที่จะอธิบายการใช้งานที่ไม่สอดคล้องกันของจาวาสคริปต์ข้าม diff เบราว์เซอร์
เอกสารอ้างอิง - Wrox (จาวาสคริปต์ระดับมืออาชีพสำหรับนักพัฒนาเว็บ)
ในความเข้าใจของฉัน ECMAScript คือ "ทฤษฎี" หรือ "ข้อมูลจำเพาะ" และ Javascript คือ "Practicals" หรือ "Implementation"
JavaScript เป็นภาษา ECMAScript
ECMAScript ไม่จำเป็นว่าจะต้องใช้ JavaScript
คำตอบที่มีอยู่ถอดความประเด็นหลักค่อนข้างดี
ประเด็นหลักคือ ECMAScript เป็นภาษานามธรรมโดยไม่มีส่วนขยายเฉพาะโดเมนมันไม่มีประโยชน์ในตัวเอง เปคกำหนดเฉพาะภาษาและวัตถุหลักของมัน
ในขณะที่ JavaScript และ ActionScript และภาษาอื่น ๆ เพิ่มห้องสมุดเฉพาะของโดเมนลงไปเพื่อให้คุณสามารถใช้มันเพื่อสิ่งที่มีความหมาย
มีเอ็นจินECMAScriptจำนวนมากบางตัวเป็นโอเพ่นซอร์สส่วนอื่น ๆ เป็นกรรมสิทธิ์ คุณสามารถเชื่อมโยงมันเข้ากับโปรแกรมของคุณแล้วเพิ่มฟังก์ชั่นพื้นฐานของคุณไปยังวัตถุทั่วโลกเพื่อให้โปรแกรมของคุณกลายเป็นสคริปต์ได้ แม้ว่าส่วนใหญ่มักจะใช้ในเบราว์เซอร์
Javascript เป็นชื่อเดิมหมายถึงการใช้ประโยชน์จากความนิยมของจาวา ECMA เป็นหน่วยงานมาตรฐานที่ดูแลมาตรฐานที่วางไว้ในที่สุดดังนั้นชื่อจึงมีความเท่าเทียมกัน
การใช้งานมีชื่ออื่นเช่น V8 หรือ Rhino เป็นต้น
ECMAScriptเป็นมาตรฐานสำหรับJavaScrip t ดูข้อความเหล่านี้จากMDN :
JavaScript (JS)เป็นภาษาการเขียนโปรแกรมที่แปลแล้วหรือรวบรวมโดย JIT พร้อมฟังก์ชั่นชั้นหนึ่ง ในขณะที่มันเป็นที่รู้จักกันดีที่สุดในฐานะภาษาสคริปต์สำหรับเว็บเพจสภาพแวดล้อมที่ไม่ใช่เบราว์เซอร์จำนวนมากก็ใช้เช่น node.js Apache CouchDB และ Adobe Acrobat จาวาสคริปต์เป็นต้นแบบต้นแบบหลายกระบวนทัศน์ภาษาแบบไดนามิกสนับสนุนรูปแบบเชิงวัตถุที่จำเป็นและการประกาศ (เช่นการเขียนโปรแกรมการทำงาน) อ่านเพิ่มเติมเกี่ยวกับ JavaScript
มาตรฐานสำหรับ JavaScript เป็นECMAScript ตั้งแต่ปี 2012 เบราว์เซอร์สมัยใหม่ทั้งหมดสนับสนุน ECMAScript 5.1 อย่างสมบูรณ์ เบราว์เซอร์รุ่นเก่ารองรับ ECMAScript 3 อย่างน้อยในวันที่ 17 มิถุนายน 2015 ECMA International ได้เผยแพร่ ECMAScript รุ่นที่หกที่สำคัญซึ่งเรียกว่า ECMAScript 2015 อย่างเป็นทางการและได้รับการขนานนามว่า ECMAScript 6 หรือ ES6 ตั้งแต่นั้นมามาตรฐาน ECMAScript จะเปิดตัวในรอบปี เอกสารนี้อ้างถึงฉบับร่างล่าสุดซึ่งปัจจุบันคือ ECMAScript 2018
สำหรับข้อมูลเพิ่มเติมเยี่ยมชมที่นี่
นี่คือสิ่งที่ฉันค้นพบ:
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 นี้คำตอบยังสนับสนุนวิธีการที่ผมเห็นสถานการณ์
ฉันสงสัยว่าเราเคยใช้คำว่า "ECMAScript" หากไม่ใช่เพราะชื่อ "JavaScript" นั้นเป็นของ Sun สำหรับเจตนาและวัตถุประสงค์ทั้งหมดภาษาคือ JavaScript คุณไม่ไปที่ร้านหนังสือที่กำลังมองหาหนังสือ ECMAScript ใช่ไหม?
มันง่ายเกินไปที่จะบอกว่า "JavaScript" เป็นการใช้งาน JScript เป็นการใช้งานของ Microsoft
JavaScript เป็นสาขาหนึ่งของภาษาที่สร้างขึ้นรอบ ๆ มาตรฐาน ECMAScript ฉันเชื่อว่า ECMA เป็นสมาคมผู้ผลิตคอมพิวเตอร์ในยุโรปไม่ใช่ว่ามันเกี่ยวข้องหรืออะไรก็ตาม
อย่าลืมภาษาอื่นที่เป็นที่นิยมซึ่งสร้างขึ้นตามมาตรฐานสคริปต์ ECMA คือ ActionScript ซึ่งใช้ใน Adobe Flash / Flex