Tại sao không có tham chiếu JavaScript CHÍNH THỨC? [đóng cửa]


90

Tôi đã cố gắng tìm kiếm tài liệu tham khảo JavaScript, nhưng không có. Hai nguồn tốt nhất được đề xuất là MDN (Mozilla Developer Network) và W3Schools.

Tại sao?


54
Tránh w3schools; tài liệu JS của nó có xu hướng cực kỳ kém, IMHO.
NickFitz

1
Xin lỗi, ý tôi là MDC; developer.mozilla.org/en/About_JavaScript
huy

9
Đây là một nhận xét ngẫu nhiên, nhưng cá nhân tôi nghĩ rằng tất cả các trình duyệt nên loại bỏ tất cả các lỗi Javascript / Jscript và triển khai jQuery nguyên bản. :)
DisgruntledGoat

14
Hình nền jQuery trên DOM, nhưng không thực sự thay thế JavaScript.
Rob

2
@huy MDN, không MDC hoặc MDE
maan81

Câu trả lời:


63

Nó không giống như có một bản phát hành JavaScript chính thức. Tất cả các trình duyệt đã tạo công cụ JavaScript của riêng họ - một số trình duyệt đang sử dụng cùng một công cụ. Nhưng đặc biệt là Internet Explorer có phiên bản riêng của nó không hỗ trợ nhiều những gì mà các trình duyệt khác hỗ trợ, nên rất khó để thực hiện một tham chiếu chung về JavaScript.

Chỉnh sửa:
Mặc dù tôi biết có một nhóm phát triển và tiêu chuẩn ECMA chính thức, nhưng quan điểm của tôi là nó không thực sự quan trọng chừng nào trình duyệt (Internet Explorer) không đáp ứng được điều đó. Vào cuối ngày, khách hàng cũng muốn JavaScript hoạt động cho Internet Explorer. Họ sẽ không quan tâm đến các tiêu chuẩn ECMA, họ chỉ muốn nó hoạt động. Đây là nơi mà các thư viện JavaScript đi vào hình ảnh, nhưng đó là một câu chuyện khác.

Vấn đề tương tự với HTML và CSS, chúng tôi không thể sử dụng các công cụ này để phát triển tích cực cho đến khi:

  • Tất cả các trình duyệt đều hỗ trợ chúng.
  • Chúng tôi cung cấp mã cho các trình duyệt để làm cho chúng hỗ trợ nó.
  • Không sao, nó không hoạt động trên tất cả các trình duyệt.

Chỉnh sửa2:
Internet Explorer đang tiến gần đến nấm mồ với dự án trình duyệt mới của Microsoft: Edge. Tuy nhiên, điều này không thực sự thay đổi bức tranh tổng thể. Chúng tôi vẫn còn rất nhiều nếu các trình duyệt khác nhau mà chúng tôi cần hỗ trợ. Các nhà phát triển không ngừng cố gắng vượt qua ranh giới của những gì có thể. Điều này có nghĩa là chúng tôi thường gặp sự cố này, một số phiên bản trình duyệt mà chúng tôi muốn hỗ trợ không hỗ trợ một số tính năng của tiêu chuẩn (thường hơi linh hoạt), điều đó có nghĩa là chúng tôi cần thực hiện một số giải pháp thay thế hoặc sử dụng các khuôn khổ triển khai các trong các tính năng.


Tôi hiểu rồi, vậy các trình duyệt khác nhau có triển khai riêng theo tiêu chuẩn ECMA-262 mà Michael đã đề cập ở trên không?
huy 22/10/09

3
@huy: yes - với mức hỗ trợ khác nhau cho / giải thích của tiêu chuẩn đó khác nhau, buồn bã ...
Andrzej Doyle

1
-1, có một tiêu chuẩn chính thức Javascript: nó được gọi là ECMAScript và có một cơ thể chính thức đằng sau nó: en.wikipedia.org/wiki/Ecma_International
Hasen

Tôi không chắc tại sao bạn lại chỉ ra rằng Internet Explorer kém hơn bất kỳ khi hỗ trợ "tiêu chuẩn" ECMA như bất kỳ trình duyệt nào khác.

5
@ ראובן: Bởi vì nó đã / đang. Trong một thời gian dài, IE không chỉ có nhiều lỗi nghiêm trọng mà các trình duyệt khác không có, mà còn thiếu các tính năng quan trọng mà các trình duyệt khác có. Tuy nhiên, IE8 và 9 đã bắt kịp rất nhiều, vì vậy tình hình đang thay đổi. Nhưng trong nhiều năm IE rất tệ, trong khi các trình duyệt khác có hỗ trợ ECMAScript tốt. Ngoài ra, ECMAScript một tiêu chuẩn. Tôi không chắc tại sao bạn lại đặt nó trong dấu ngoặc kép.
Pauan

28

Bạn có thể thử với trang ECMAscript chính thức,

http://www.ecmascript.org/

nhưng điều hữu ích thực sự là việc triển khai của mỗi trình duyệt.

Tôi rất thích bản cheatsheet này từ Kinh thánh JavaScript của Danny Goodman:

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


Bảng ăn gian đó đã chết. Tôi có thể gợi ý caniuse.com không?
Grinn

Cảm ơn, tôi đã liên kết đến liên kết mới và giải thích một chút nó là gì. Cảm ơn cho những người đứng đầu lên!
Victor

Tốt, tôi sẽ kiểm tra điều đó.
Grinn

22

Tôi muốn nói đây là "chính thức": https://developer.mozilla.org/en/JavaScript

Bạn cũng có Đặc tả ngôn ngữ ECMAScript, Phiên bản 5.1 (hoặc dưới dạng PDF , thông số kỹ thuật chính thức) .

Và từ Microsoft: Tham chiếu Ngôn ngữ JavaScript : "Tài liệu này giải thích việc triển khai JavaScript của Microsoft , tuân thủ đặc tả ngôn ngữ ECMAScript 5 Edition . Nó cũng cung cấp các tính năng bổ sung không có trong Tiêu chuẩn Ecma."


8
IE không có công cụ JavaScript - thay vào đó nó cài đặt JScript (phần lớn tương thích). msdn.microsoft.com/en-us/library/yek4tbz0%28VS.85%29.aspx trông giống như tài liệu tham khảo chính thức cho điều đó.
Quentin

3
Hmm ... developer.mozilla rất hữu ích, nhưng tôi sẽ không gọi nó là "chính thức". Đặc tả ngôn ngữ ECMAScript gần với "chính thức" hơn.
Steve Harrison

4
Đặc tả ngôn ngữ ECMAScript là tài liệu tham khảo chính thức cho ECMAScript. JavaScript là một superset của ECMAScript, được tạo ra bởi Netscape và Mozilla thừa hưởng MDC từ Netscape (mặc dù tên đã thay đổi kể từ đó)
Quentin

+1 cho tiêu chuẩn ECMAScript.
Jason S

@Quentin - Thật thú vị khi tiêu đề của liên kết MSDN mà bạn tham chiếu hiện là "JavaScript Reference" . Tuy nhiên, bài báo MSDN "JScript (ECMAScript3)" cho biết: "JScript là bản triển khai đặc tả ngôn ngữ ECMA 262 của Microsoft (ECMAScript Edition 3). Chỉ với một số ngoại lệ nhỏ (để duy trì khả năng tương thích ngược), JScript là sự triển khai đầy đủ của tiêu chuẩn ECMA. " .
DavidRR

8

Nếu bạn đang sử dụng ECMAScript cho web (mà 99,9% người dùng), thì ngoài cú pháp cơ bản của ngôn ngữ (được đề cập trong thông số kỹ thuật ECMA-262 được đề cập ở trên), những gì bạn có thể đang tìm kiếm là một tham chiếu DOM - là API ECMAScript được sử dụng để tương tác với các tài liệu web.

Tôi rất ngạc nhiên không ai đề cập đến phần mềm DOM api. Chuẩn DOM W3C hiện tại ở đây: http://www.w3.org/TR/DOM-Level-2-Core/

(btw, đối với sự nhầm lẫn đặt tên - ECMAScript là tên của tiêu chuẩn chính thức, và "Javascript" và "JScript" là Netscape và "fork" độc quyền của Microsoft)


3

Có một tài liệu tham khảo chính thức, nó không ở định dạng rất thuận tiện. Đó là đặc điểm kỹ thuật ECMA-262 . Nó là một tài liệu PDF duy nhất, rất lớn, thay vì một tập hợp các trang HTML có thể tìm kiếm được.


3

Mọi bản sửa đổi của các trang JavaScript trên MDC của một thành viên trong nhóm Tài liệu Mozilla (như Eric Shepherd ) đều là chính thức. JavaScript được Mozilla chính thức duy trì nên chỉ có tài liệu của Mozilla là chính thức. Các công cụ duy nhất hỗ trợ JavaScript hiện do Mozilla tạo ra và mọi công cụ khác đều triển khai ECMAScript. JavaScript và ECMAScript có khá nhiều điểm khác biệt (ví dụ: letcâu lệnh tuyệt vời ).


3

Rất khó để có một tham chiếu "chính thức" miễn là có các triển khai (trong tất cả các trình duyệt) và có một thông số kỹ thuật (ECMAScript) nhưng không có kiểm tra sự phù hợp của các triển khai so với các thông số kỹ thuật.

Tuy nhiên, hiện tại, chúng tôi có bộ tuân thủ EMCAScript 5 tại http://es5conform.codeplex.com/ - và có vẻ như có một số đồng thuận rằng việc triển khai ECMAScript sẽ gần nhau hơn, khiến ECMAScript có nhiều khả năng trở thành tài liệu tham khảo chính thức cho ngôn ngữ.


2

Tôi thấy tài liệu JavaScript Netscape 4 cũ rất hữu ích cho mục đích này. Mặc dù rõ ràng là chúng đã lỗi thời hoàn toàn và một số tính năng DOM trong đó như Lớp đã biến mất từ ​​lâu, nhưng đối với các kiến ​​thức cơ bản về ngôn ngữ, chúng thực sự vững chắc.

Đó là bởi vì trước những ngày thống trị của IE và chuẩn hóa ECMA, JavaScript của Netscape là JavaScript cuối cùng. Các trình duyệt khác phải triển khai chính xác những gì bạn thấy trong các tài liệu cũ đó.

Chúng cũng dễ đọc hơn nhiều so với tài liệu ECMA-262, thậm chí theo tiêu chuẩn của các tài liệu tiêu chuẩn là một nỗi kinh hoàng tuyệt đối.


1

Trích dẫn của Wikipedia:

Bắt đầu tại Netscape

Vào tháng 11 năm 1996, Netscape đã gửi JavaScript cho Ecma International ...

JavaScript được quản lý chính thức bởi Mozilla Foundation ...

Vì vậy, theo tôi, ECMA là tiêu chuẩn và Mozilla là tiêu chuẩn chính thức.


0

"Chính thức", tôi nghĩ ý bạn là "được viết bởi những người chịu trách nhiệm về JavaScript".

Chỉ suy đoán ở đây thực sự, nhưng những người chịu trách nhiệm về JavaScript (ECMA) không trực tiếp kiếm tiền từ nó và có thể không có bất kỳ kỹ năng cụ thể nào trong việc viết tài liệu tham khảo. Vì vậy, họ không có động cơ và khả năng viết một tài liệu tham khảo tốt.

Cá nhân tôi thích JavaScript: Hướng dẫn dứt khoát từ O'Reilly. Có một ấn bản thứ sáu sẽ ra mắt vào tháng 11.


2
Đúng vậy. Sun sở hữu nhãn hiệu cho JavaScript, nhưng đã cấp phép nó cho Netscape. Oracle đã mua Sun, vì vậy bây giờ Oracle sở hữu nhãn hiệu này (họ vẫn cấp phép nó cho Mozilla). HTML và CSS được xác định bởi W3C, vì vậy đó là một vấn đề khác. Công cụ JS trong Firefox chứa nhiều tính năng độc quyền (và tuyệt vời) không có trong bất kỳ trình duyệt nào khác. Người tạo ra JavaScript (Brendan Eich) nằm trong ủy ban ECMAScript chính thức và cũng làm việc cho Mozilla.
Pauan

1
Ngoài ra, hãy lưu ý liên kết này: en.wikipedia.org/wiki/ECMAScript#Dialects Firefox có cái được gọi là "JavaScript 1.8.5", như đã đề cập chứa nhiều tính năng nâng cao không có trong các trình duyệt khác như đối tượng / mảng hủy cấu trúc / hiểu , trình tạo / trình lặp, khối lệnh / câu lệnh let, v.v. Cũng lưu ý chú thích thứ 2 trong liên kết đó, có nội dung "Mozilla quản lý phiên bản chính thức của JavaScript. Hầu hết các triển khai không phải Mozilla tuyên bố" tuân thủ "JavaScript không thực sự hỗ trợ hầu hết các tiện ích mở rộng JavaScript; thay vào đó, họ nhắm mục tiêu ECMA-262, ấn bản 3. "
Pauan

1
Tôi sẽ lưu ý rằng ECMAScript khác với JavaScript. ECMAScript là một tiêu chuẩn do Ecma định nghĩa. Các trình duyệt thường khá tốt trong việc hỗ trợ tiêu chuẩn ECMAScript và khi hầu hết mọi người nói "JavaScript" thì ý họ thực sự là ECMAScript. Thật không may là tình huống và thuật ngữ rất khó hiểu, nhưng nó là có. Vì vậy, phần lớn, định nghĩa không chính thức của JavaScript là "bất cứ điều gì các trình duyệt làm", nhưng về mặt chính thức, Mozilla thực sự phải chịu trách nhiệm về nó.
Pauan

1
Điều này có nghĩa là bất kỳ câu hỏi nào yêu cầu "tham chiếu JavaScript chính thức" đều quá mơ hồ để trả lời chính xác. Bạn có tiêu chuẩn ECMAScript chính thức, các triển khai thực tế của JavaScript trong trình duyệt, MDC (bao gồm triển khai JavaScript chính thức trong Firefox) và tất nhiên là tài liệu không chính thức rất phổ biến như w3schools. Tất cả đều hữu ích, vì vậy không thực sự có bất kỳ tham chiếu "chính xác duy nhất" nào giống như Python.
Pauan

2
(có lẽ tôi nên đã gửi này như một câu trả lời thực tế, chứ không phải là một loạt các bình luận ... oh well)
Pauan

-1

Tôi thực sự thích apidoc của Daniel Krook , mặc dù nó có thể sử dụng một số giải thích và ví dụ. Tôi thực sự muốn xem một bản mashup krook w3school.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.