为啥没有官方的 JavaScript 参考? [关闭]

Posted

技术标签:

【中文标题】为啥没有官方的 JavaScript 参考? [关闭]【英文标题】:Why is there no OFFICIAL JavaScript reference? [closed]为什么没有官方的 JavaScript 参考? [关闭] 【发布时间】:2010-12-09 00:54:49 【问题描述】:

我尝试搜索 javascript 参考,但没有可用的。最好的两个建议来源是 MDN(Mozilla 开发者网络)和 ECMA(https://262.ecma-international.org/12.0/)

为什么?

【问题讨论】:

避免使用 w3schools;恕我直言,它的 JS 材料往往非常糟糕。 对不起,我的意思是 MDC; developer.mozilla.org/en/About_JavaScript 这是一种随意的评论,但我个人认为所有的浏览器都应该放弃所有的 Javascript/Jscript 混蛋并原生实现 jQuery。 :) DOM 上的 jQuery 壁纸,但实际上并没有取代 JavaScript。 @huy MDN ,不是 MDC 或 MDE 【参考方案1】:

好像没有官方的 JavaScript 版本。所有的浏览器都制作了自己的 JavaScript 引擎——尽管有些浏览器使用相同的引擎。但尤其是 Internet Explorer 有自己的版本,它不支持很多其他浏览器所支持的功能,因此很难进行通用的 JavaScript 参考。

编辑: 虽然我知道有一个官方的 ECMA 标准和开发团队,但我的观点是,只要浏览器(Internet Explorer)不符合它的要求,这并不重要。归根结底,客户希望 JavaScript 也能用于 Internet Explorer。他们不会关心 ECMA 标准,他们只是希望它能够工作。这就是 JavaScript 库出现的地方,但这是另一回事。

html 和 CSS 也是同样的问题,我们不能使用这些工具进行主动开发,直到:

所有浏览器都支持它们。 我们为浏览器提供代码以使其支持。 没关系,它不适用于所有浏览器。

编辑2: Internet Explorer 与 Microsoft 的新浏览器项目接近尾声:Edge。然而,这并没有真正改变整体情况。如果我们需要支持不同的浏览器,我们仍然有很多。开发人员不断尝试突破可能的界限。这意味着我们经常遇到这个问题,我们想要支持的某些浏览器版本不支持标准的某些功能(通常有点流畅),这意味着我们需要做一些变通或使用实现缺失的内置功能的框架。

【讨论】:

我明白了,所以不同的浏览器根据Michael上面提到的ECMA-262标准有自己的实现? @huy:是的 - 遗憾的是,对该标准的支持/不同解释的程度不同...... -1,一个官方的 Javascript 标准:它被称为 ECMAscript,它背后有一个官方机构:en.wikipedia.org/wiki/Ecma_International 我不知道您为什么单独指出 Internet Explorer 在支持 ECMA“标准”方面比任何其他浏览器都差。 @ראובן:因为它是/曾经。长期以来,IE 不仅有许多其他浏览器没有的严重错误,而且还缺少其他浏览器所具有的重要功能。不过,IE8 和 9 已经赶上了很多,所以情况正在发生变化。但是多年来 IE 是可怕的,而其他浏览器却有很好的 ECMAScript 支持。此外,ECMAScript 一个标准。我不知道你为什么把它放在引号里。【参考方案2】:

你可以试试ECMAscript官方网站,

http://www.ecmascript.org/

但有用的其实是各个浏览器的实现。

我非常喜欢 Danny Goodman 的 JavaScript 圣经中的这份备忘单:

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

【讨论】:

那个备忘单已经死了。我可以推荐 caniuse.com 吗? 谢谢,我链接到新链接并解释了一下它是什么。感谢您的提醒! 很好,我去看看。【参考方案3】:

我会说这个是“官方”:https://developer.mozilla.org/en/JavaScript

您还拥有ECMAScript Language Specification, 5.1 Edition (或作为PDF,最终规范)

来自 Microsoft:JavaScript Language Reference:“本文档解释了 Microsoft 的 JavaScript 实现,它符合 ECMAScript 5th Edition 语言规范。它还提供了额外的Ecma 标准中未包含的功能。”

【讨论】:

IE 没有 JavaScript 引擎——它实现了 JScript(很大程度上兼容)。 msdn.microsoft.com/en-us/library/yek4tbz0%28VS.85%29.aspx 看起来像是官方参考。 嗯...developer.mozilla 很有帮助,但我不会称其为“官方”。 ECMAScript 语言规范更接近“官方”。 ECMAScript 语言规范是 ECMAScript 的官方参考。 JavaScript 是 ECMAScript 的超集,由 Netscape 创建,Mozilla 继承了 Netscape 的 MDC(尽管此后名称已更改) ECMAScript 标准+1。 @Quentin - 有趣的是,您引用的 MSDN link 的标题现在是 "JavaScript Reference"。然而,MSDN 文章"JScript (ECMAScript3)" 指出:“JScript 是 ECMA 262 语言规范(ECMAScript 版本 3)的 Microsoft 实现。除了少数小例外(为了保持向后兼容性),JScript 是ECMA 标准。”.【参考方案4】:

如果您将 ECMAScript 用于 Web(99.9% 的人都在使用),那么除了该语言的基本句法(包含在上面提到的 ECMA-262 规范中)之外,您可能正在寻找的是DOM 参考 - 这是用于与 Web 文档交互的 ECMAScript API。

我很惊讶到目前为止还没有人提到 DOM api。当前的 W3C DOM 标准在这里:http://www.w3.org/TR/DOM-Level-2-Core/

(顺便说一句,至于命名混乱——ECMAScript 是官方标准的名称,而“Javascript”和“JScript”是 Netscape 和微软专有的“forks”)

【讨论】:

【参考方案5】:

***的引用:

从网景开始

1996 年 11 月,Netscape 将 JavaScript 提交给Ecma International ...

JavaScript 由Mozilla Foundation 官方管理...

所以,在我看来,ECMA 是标准,Mozilla 是官方标准。

【讨论】:

【参考方案6】:

只要有实现(在所有浏览器中)并且有规范(ECMAScript)但没有针对规范的实现一致性测试,就很难获得“官方”参考。

不过,现在,我们在http://es5conform.codeplex.com/ 拥有了 EMCAScript 5 一致性套件 - 并且似乎达成了一些共识,即 ECMAScript 实现将更加紧密地结合在一起,从而使 ECMAScript 更有可能成为该语言的官方参考。

【讨论】:

【参考方案7】:

有官方参考,只是格式不太方便。它是ECMA-262 规范。它是一个非常大的 PDF 文档,而不是一组可搜索的 HTML 页面。

【讨论】:

【参考方案8】:

Mozilla 文档团队成员(如Eric Shepherd)对JavaScript pages on MDC 的任何修订都是官方的。 JavaScript 由 Mozilla 官方维护,因此只有 Mozilla 的文档是官方的。目前唯一支持 JavaScript 的引擎由 Mozilla 开发,其他所有引擎都实现了 ECMAScript。 JavaScript 和 ECMAScript 有很多不同之处(例如,很棒的 let 语句)。

【讨论】:

【参考方案9】:

我发现老派的Netscape 4 JavaScript docs 对此非常有用。尽管它们显然已经完全过时了,并且其中的一些 DOM 功能(如图层)早已不复存在,但对于语言基础来说,它们确实很扎实。

那是因为在 IE 至高无上和 ECMA 标准化的日子之前,Netscape 的 JavaScript 是 权威的 JavaScript。其他浏览器几乎必须完全实现您在那些旧文档中看到的内容。

它们也比 ECMA-262 文档更容易阅读,即使按照标准文档的标准,它也是绝对可怕的。

【讨论】:

【参考方案10】:

“官方”是指“由负责 JavaScript 的人员编写”。

这里只是推测,但负责 JavaScript(ECMA)的人并没有直接从中赚钱,而且可能没有任何编写参考文档的特殊技能。所以他们既没有动力也没有能力写出好的参考。

就个人而言,我喜欢 O'Reilly 的 JavaScript: the Definitive Guide。第六版将于 11 月出版。

【讨论】:

是的,他们是。 Sun 拥有 JavaScript 的商标,但已将其授权给 Netscape。甲骨文收购了 Sun,所以现在甲骨文拥有该商标(他们仍然将其授权给 Mozilla)。 HTML 和 CSS 是由 W3C 定义的,所以这是另一回事。 Firefox 中的 JS 引擎包含许多在任何其他浏览器中都没有的专有(和令人敬畏的)功能。 JavaScript 的创建者 (Brendan Eich) 是官方 ECMAScript 委员会的成员,也为 Mozilla 工作。 此外,请注意此链接:en.wikipedia.org/wiki/ECMAScript#Dialects Firefox 具有所谓的“JavaScript 1.8.5”,如前所述,它包含许多其他浏览器中没有的高级功能,例如对象/数组解构/理解、生成器/迭代器、let 块/语句等。还要注意该链接中的第二个脚注,它说“Mozilla 管理 JavaScript 的官方版本。大多数声称 JavaScript“合规”的非 Mozilla 实现实际上并不支持大多数 JavaScript 扩展;相反,它们针对的是 ECMA-262,第 3 版。” 我会注意到 ECMAScript 与 JavaScript 不同。 ECMAScript 是 Ecma 定义的标准。浏览器通常非常支持 ECMAScript 标准,当大多数人说“JavaScript”时,他们真正的意思是 ECMAScript。不幸的是,情况和术语如此混乱,但确实如此。因此,在大多数情况下,JavaScript 的非正式定义是“无论浏览器做什么”,但官方来说,Mozilla 确实对此负责。 这意味着任何要求“官方 JavaScript 参考”的问题都过于模糊而无法准确回答。你有官方的 ECMAScript 标准、浏览器中 JavaScript 的实际实现、MDC(它涵盖了 Firefox 中的官方 JavaScript 实现),当然还有非常流行的非官方文档,比如 w3schools。所有这些都是有用的,因此实际上没有任何“单一正确”的参考,例如 Python。 (也许我应该将其作为实际答案发布,而不是一系列 cmets ......哦,好吧)【参考方案11】:

我真的很喜欢Daniel Krook's apidoc,尽管它可以使用一些解释和示例。我真的很想看看 krook w3school mashup。

【讨论】:

以上是关于为啥没有官方的 JavaScript 参考? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

ipad悬浮球蓝牙为啥关不掉

为啥我在3D中打灯光没有阴影效果

苹果手机突然没信号,开不了机,也关不了,啥原因

golang为啥没有官方的gui包

新人求问,sublime控制台输入后为啥没有输出

安卓系统的手机怎么把拍照的声音关了????我试了Room 也不行 可能是我不用???还有没有别的方法