เหตุใดจึงไม่มีการอ้างอิง JavaScript อย่างเป็นทางการ [ปิด]


92

ฉันพยายามค้นหาการอ้างอิง JavaScript แต่ไม่มีเลย แหล่งข้อมูลที่แนะนำที่ดีที่สุด 2 แหล่งคือ MDN (Mozilla Developer Network) และ W3Schools

ทำไม?


55
หลีกเลี่ยง w3schools; เนื้อหา JS มีแนวโน้มที่จะแย่มาก IMHO
NickFitz

1
ขอโทษฉันหมายถึง MDC; developer.mozilla.org/en/About_JavaScript
huy

9
นี่เป็นความคิดเห็นแบบสุ่ม แต่โดยส่วนตัวแล้วฉันคิดว่าเบราว์เซอร์ทั้งหมดควรลบ bastardisations Javascript / Jscript ทั้งหมดและใช้ jQuery โดยกำเนิด :)
แพะไม่พอใจ

14
jQuery วอลเปเปอร์บน DOM แต่ไม่ได้แทนที่ JavaScript
Rob

2
@huy MDN ไม่ใช่ MDC หรือ MDE
maan81

คำตอบ:


64

ไม่เหมือนกับการเปิดตัว JavaScript อย่างเป็นทางการ เบราว์เซอร์ทั้งหมดได้สร้างเอ็นจิ้น JavaScript ของตัวเอง - บางอันก็ใช้แบบเดียวกัน แต่โดยเฉพาะอย่างยิ่ง Internet Explorer มีเวอร์ชันของตัวเองที่ไม่รองรับสิ่งที่เบราว์เซอร์อื่น ๆ สนับสนุนมากนักทำให้การอ้างอิง JavaScript ทั่วไปทำได้ยากมาก

แก้ไข:
ในขณะที่ฉันรู้ว่ามีมาตรฐาน ECMA อย่างเป็นทางการและทีมพัฒนา แต่ประเด็นของฉันก็คือมันไม่สำคัญตราบใดที่เบราว์เซอร์ (Internet Explorer) ไม่สามารถใช้งานได้ ในตอนท้ายของวันนี้ลูกค้าต้องการให้ JavaScript ทำงานกับ Internet Explorer ด้วย พวกเขาไม่สนใจเกี่ยวกับมาตรฐาน ECMA พวกเขาแค่ต้องการให้มันทำงาน นี่คือที่ที่ไลบรารี JavaScript เข้ามาในรูปภาพ แต่นั่นเป็นอีกเรื่องหนึ่ง

เป็นปัญหาเดียวกันกับ HTML และ CSS เราไม่สามารถใช้เครื่องมือเหล่านี้เพื่อการพัฒนาที่ใช้งานได้จนกว่า:

  • เบราว์เซอร์ทั้งหมดรองรับ
  • เราจัดหาเบราว์เซอร์พร้อมรหัสเพื่อให้รองรับ
  • ไม่เป็นไรใช้ไม่ได้กับทุกเบราว์เซอร์

แก้ไข 2:
Internet Explorer เข้าใกล้หลุมฝังศพด้วยโครงการเบราว์เซอร์ใหม่จาก Microsoft: Edge อย่างไรก็ตามสิ่งนี้ไม่ได้เปลี่ยนภาพรวมอย่างแท้จริง เรายังมีอีกมากหากเบราว์เซอร์ต่างๆที่เราต้องการรองรับ นักพัฒนาพยายามอย่างต่อเนื่องที่จะผลักดันขอบเขตของสิ่งที่เป็นไปได้ ซึ่งหมายความว่าเรามักจะมีปัญหานี้บางเวอร์ชันของเบราว์เซอร์ที่เราต้องการสนับสนุนไม่รองรับคุณลักษณะบางอย่างของมาตรฐาน (ซึ่งโดยปกติจะเป็นบิตที่ลื่นไหล) ซึ่งหมายความว่าเราจำเป็นต้องแก้ไขปัญหาบางอย่างหรือใช้เฟรมเวิร์กที่ใช้ในตัวที่ขาดหายไป ในคุณสมบัติ


ฉันเห็นดังนั้นเบราว์เซอร์ที่แตกต่างกันจึงมีการใช้งานของตัวเองตามมาตรฐาน ECMA-262 ที่ Michael กล่าวถึงข้างต้น?
huy

3
@huy: ใช่ - ด้วยระดับการสนับสนุนที่แตกต่างกันสำหรับ / การตีความที่แตกต่างกันของมาตรฐานนั้นน่าเศร้า ...
Andrzej Doyle

1
-1 มีเป็นมาตรฐาน Javascript อย่างเป็นทางการ: มันเรียกว่า ECMAscript และมีร่างกายอย่างเป็นทางการที่อยู่เบื้องหลังมัน: en.wikipedia.org/wiki/Ecma_International
Hasen

ฉันไม่แน่ใจว่าทำไมคุณถึงแยก Internet Explorer ว่าแย่กว่าที่สนับสนุน ECMA "มาตรฐาน" เหมือนเบราว์เซอร์อื่น

5
@ ראובן: เพราะมันเป็น / เป็น IE เป็นเวลานานไม่เพียง แต่มีบั๊กที่รุนแรงมากมายที่เบราว์เซอร์อื่นไม่มี แต่มันยังขาดคุณสมบัติสำคัญที่เบราว์เซอร์อื่นมี IE8 และ 9 ได้รับความสนใจเป็นอย่างมากดังนั้นสถานการณ์จึงเปลี่ยนไป แต่เป็นเวลาหลายปีที่ IE นั้นน่ากลัวในขณะที่เบราว์เซอร์อื่น ๆ รองรับ ECMAScript ที่ดี นอกจากนี้ ECMAScript เป็นมาตรฐาน ฉันไม่แน่ใจว่าทำไมคุณถึงใส่ไว้ในเครื่องหมายคำพูด
Pauan

28

คุณสามารถลองใช้เว็บไซต์ ECMAscript อย่างเป็นทางการ

http://www.ecmascript.org/

แต่สิ่งที่มีประโยชน์คือการใช้งานเบราว์เซอร์แต่ละตัว

ฉันชอบกลโกงนี้จาก JavaScript Bible ของ Danny Goodman มาก:

http://media.wiley.com/product_ancillary/12/04705269/DOWNLOAD/9780470526910_Appendix_A.pdf


แผ่นโกงนั้นตายแล้ว ฉันขอแนะนำ caniuse.com?
Grinn

ขอบคุณฉันเชื่อมโยงไปยังลิงก์ใหม่และอธิบายว่ามันคืออะไร ขอบคุณสำหรับหัวขึ้น!
วิกเตอร์

ดีฉันจะตรวจสอบให้
Grinn

22

ฉันจะบอกว่าอันนี้คือ "ทางการ": https://developer.mozilla.org/en/JavaScript

นอกจากนี้คุณยังมีภาษาข้อมูลจำเพาะ ECMAScript 5.1 ฉบับ (หรือเป็นรูปแบบไฟล์ PDF , สเปคที่ชัดเจน)

และจาก Microsoft: การอ้างอิงภาษา JavaScript : "เอกสารนี้อธิบายการใช้งาน JavaScript ของ Microsoftซึ่งสอดคล้องกับข้อกำหนดภาษาECMAScript 5th Editionนอกจากนี้ยังมีคุณลักษณะเพิ่มเติมที่ไม่รวมอยู่ใน Ecma Standards"


8
IE ไม่มีเครื่องมือ JavaScript - ใช้ JScript แทน (ซึ่งส่วนใหญ่เข้ากันได้) msdn.microsoft.com/en-us/library/yek4tbz0%28VS.85%29.aspxดูเหมือนการอ้างอิงอย่างเป็นทางการสำหรับสิ่งนั้น
Quentin

3
อืม ... developer.mozillaมีประโยชน์มาก แต่ฉันจะไม่เรียกมันว่า "เป็นทางการ" ข้อกำหนดภาษา ECMAScript ใกล้เคียงกับ "อย่างเป็นทางการ" มากขึ้น
Steve Harrison

4
ข้อกำหนดภาษา ECMAScript เป็นข้อมูลอ้างอิงอย่างเป็นทางการสำหรับ ECMAScript JavaScript เป็นส่วนเหนือของ ECMAScript สร้างขึ้นโดย Netscape และ Mozilla สืบทอด MDC จาก Netscape (แม้ว่าชื่อจะเปลี่ยนไปแล้วก็ตาม)
Quentin

+1 สำหรับมาตรฐาน ECMAScript
Jason S

@Quentin - ที่น่าสนใจว่าชื่อของMSDN เชื่อมโยงคุณอ้างอิงอยู่ในขณะนี้"อ้างอิง JavaScript" อย่างไรก็ตามบทความ MSDN "JScript (ECMAScript3)"ระบุว่า: "JScript เป็นการใช้งานข้อกำหนดภาษา ECMA 262 ของ Microsoft (ECMAScript Edition 3) ด้วยข้อยกเว้นเล็กน้อยเพียงเล็กน้อย (เพื่อรักษาความเข้ากันได้แบบย้อนกลับ) JScript เป็นการใช้งานเต็มรูปแบบของ มาตรฐาน ECMA " .
DavidRR

8

หากคุณใช้ ECMAScript สำหรับเว็บ (ซึ่ง 99.9% ของผู้คนเป็น) นอกเหนือจากไวยากรณ์พื้นฐานของภาษาแล้ว (ครอบคลุมในข้อกำหนด ECMA-262 ที่กล่าวถึงข้างต้น) สิ่งที่คุณอาจมองหาคือข้อมูลอ้างอิง DOM ซึ่งเป็น ECMAScript API ที่ใช้ในการโต้ตอบกับเอกสารบนเว็บ

ฉันประหลาดใจมากที่ไม่มีใครพูดถึง DOM api sofar มาตรฐาน W3C DOM ปัจจุบันอยู่ที่นี่: http://www.w3.org/TR/DOM-Level-2-Core/

(btw สำหรับความสับสนในการตั้งชื่อ - ECMAScript เป็นชื่อของมาตรฐานอย่างเป็นทางการส่วน "Javascript" และ "JScript" เป็น Netscape และ "forks" ที่เป็นกรรมสิทธิ์ของ Microsoft)


3

มีข้อมูลอ้างอิงอย่างเป็นทางการ แต่ไม่ได้อยู่ในรูปแบบที่สะดวกมากนัก มันเป็นECMA-262สเปค เป็นเอกสาร PDF ชุดเดียวที่มีขนาดใหญ่มากแทนที่จะเป็นชุดหน้า HTML ที่ค้นหาได้


3

การแก้ไขหน้า JavaScriptใด ๆบน MDCโดยสมาชิกของทีม Mozilla Documentation (เช่นEric Shepherd ) เป็นทางการ JavaScript ได้รับการดูแลอย่างเป็นทางการโดย Mozilla ดังนั้นเฉพาะเอกสารของ Mozilla เท่านั้นที่เป็นทางการ ขณะนี้เครื่องมือเดียวที่รองรับ JavaScript นั้นสร้างขึ้นโดย Mozilla และเครื่องมืออื่น ๆ ทั้งหมดใช้ ECMAScript JavaScript และ ECMAScript มีความแตกต่างกันเล็กน้อย (เช่นletคำสั่งที่ยอดเยี่ยม)


3

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

แม้ว่าตอนนี้เรามีชุดความสอดคล้อง EMCAScript 5 ที่http://es5conform.codeplex.com/ - และดูเหมือนว่าการใช้ ECMAScript จะเข้ามาใกล้กันมากขึ้นทำให้ ECMAScript มีแนวโน้มที่จะเป็นข้อมูลอ้างอิงอย่างเป็นทางการสำหรับภาษา


2

ฉันพบว่าเอกสาร Netscape 4 JavaScriptแบบเก่ามีประโยชน์มากสำหรับจุดประสงค์นี้ แม้ว่าจะเห็นได้ชัดว่ามันล้าสมัยไปโดยสิ้นเชิงและคุณลักษณะบางอย่างของ DOM เช่น Layers นั้นหายไปนานแล้วสำหรับพื้นฐานภาษานั้นแข็งแกร่ง

นั่นเป็นเพราะก่อนสมัยของ IE อำนาจสูงสุดและ ECMA มาตรฐาน, Netscape ของ JavaScript เป็นชัดเจน JavaScript เบราว์เซอร์อื่น ๆ ค่อนข้างต้องใช้สิ่งที่คุณเห็นในเอกสารเก่าเหล่านั้น

นอกจากนี้ยังอ่านง่ายกว่าเอกสาร ECMA-262 มากซึ่งแม้ตามมาตรฐานของเอกสารมาตรฐานจะเป็นเรื่องที่น่ากลัวอย่างยิ่ง


2

ใบเสนอราคาของ Wikipedia:

จุดเริ่มต้นที่ Netscape

ในเดือนพฤศจิกายน พ.ศ. 2539 Netscape ได้ส่ง JavaScript ไปยังEcma International ...

JavaScript ได้รับการจัดการอย่างเป็นทางการโดยMozilla Foundation ...

ดังนั้นในความคิดของฉัน ECMA เป็นมาตรฐานและ Mozilla เป็นมาตรฐานอย่างเป็นทางการ


0

โดย“ เป็นทางการ” ฉันคิดว่าคุณหมายถึง“ เขียนโดยคนที่รับผิดชอบ JavaScript”

เพียงแค่คาดเดาที่นี่จริงๆ แต่คนที่รับผิดชอบ JavaScript (ECMA) ไม่ได้ทำเงินโดยตรงจากมันและอาจไม่มีทักษะพิเศษใด ๆ ในการเขียนเอกสารอ้างอิง ดังนั้นพวกเขาจึงไม่มีทั้งแรงจูงใจและความสามารถในการเขียนข้อมูลอ้างอิงที่ดี

โดยส่วนตัวแล้วฉันชอบJavaScript: คำแนะนำที่ชัดเจนจาก O'Reilly มีฉบับที่หกออกมาในเดือนพฤศจิกายน


2
ใช่พวกเขาเป็น Sun เป็นเจ้าของเครื่องหมายการค้าสำหรับ JavaScript แต่อนุญาตให้ Netscape Oracle ซื้อ Sun ดังนั้นตอนนี้ Oracle จึงเป็นเจ้าของเครื่องหมายการค้า (ยังคงอนุญาตให้ใช้ Mozilla) HTML และ CSS ถูกกำหนดโดย W3C ดังนั้นจึงเป็นเรื่องที่แตกต่างกัน JS engine ใน Firefox มีคุณสมบัติที่เป็นกรรมสิทธิ์ (และยอดเยี่ยม) มากมายที่ไม่พบในเบราว์เซอร์อื่น ๆ ผู้สร้าง JavaScript (Brendan Eich) อยู่ในคณะกรรมการ ECMAScript อย่างเป็นทางการและยังทำงานให้กับ Mozilla
Pauan

1
นอกจากนี้โปรดสังเกตลิงก์นี้: en.wikipedia.org/wiki/ECMAScript#Dialects Firefox มีสิ่งที่เรียกว่า "JavaScript 1.8.5" ซึ่งตามที่กล่าวไปแล้วมีคุณลักษณะขั้นสูงมากมายที่ไม่พบในเบราว์เซอร์อื่น ๆ เช่นการทำลาย / ความเข้าใจวัตถุ / อาร์เรย์ , เครื่องกำเนิดไฟฟ้า / ตัววนซ้ำ, ปล่อยให้บล็อก / คำสั่ง ฯลฯ นอกจากนี้โปรดสังเกตเชิงอรรถที่ 2 ในลิงก์นั้นด้วยซึ่งระบุว่า "Mozilla จัดการ JavaScript เวอร์ชันอย่างเป็นทางการการใช้งานที่ไม่ใช่ Mozilla ส่วนใหญ่ที่อ้างว่า" ปฏิบัติตามข้อกำหนด "ของ JavaScript ไม่สนับสนุนส่วนขยาย JavaScript ส่วนใหญ่ แต่พวกเขากำหนดเป้าหมายเป็น ECMA-262 รุ่น 3 "
Pauan

1
ฉันจะทราบว่า ECMAScript แตกต่างจาก JavaScript ECMAScript เป็นมาตรฐานที่กำหนดโดย Ecma โดยปกติแล้วเบราว์เซอร์มักจะรองรับมาตรฐาน ECMAScript ได้ดีและเมื่อคนส่วนใหญ่พูดว่า "JavaScript" ความหมายที่แท้จริงคือ ECMAScript โชคไม่ดีที่สถานการณ์และคำศัพท์สับสนมาก แต่ก็มี ดังนั้นส่วนใหญ่แล้วคำจำกัดความที่ไม่เป็นทางการของ JavaScript คือ "ไม่ว่าเบราว์เซอร์จะทำอะไรก็ตาม" แต่อย่างเป็นทางการ Mozilla เป็นผู้รับผิดชอบในเรื่องนี้
Pauan

1
สิ่งนี้หมายความว่าคำถามใด ๆ ที่ขอ "การอ้างอิง JavaScript อย่างเป็นทางการ" นั้นคลุมเครือเกินกว่าจะตอบได้อย่างถูกต้อง คุณมีมาตรฐาน ECMAScript อย่างเป็นทางการการใช้งาน JavaScript ในเบราว์เซอร์จริง MDC (ซึ่งครอบคลุมการใช้งาน JavaScript อย่างเป็นทางการใน Firefox) และแน่นอนว่าเอกสารที่ไม่เป็นทางการที่ได้รับความนิยมอย่างมากเช่น w3schools ทั้งหมดมีประโยชน์ดังนั้นจึงไม่มีการอ้างอิง "single correct" เหมือนที่มีสำหรับพูด Python
Pauan

2
(บางทีฉันควรจะโพสต์สิ่งนี้เป็นคำตอบที่แท้จริงแทนที่จะเป็นชุดความคิดเห็น ... โอ้ดี)
Pauan

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