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


90

我尝试搜索JavaScript参考,但没有可用的参考。建议的最好的两个来源是MDN(Mozilla开发人员网络)和W3Schools。

为什么?


54
避免去学校;恕我直言,它的JS材料往往非常差。
NickFitz

1
抱歉,我的意思是MDC;developer.mozilla.org/en/About_JavaScript

9
这是一个随机的评论,但我个人认为所有浏览器都应废弃所有Javascript / Jscript混成,并以本机方式实现jQuery。:)
DisgruntledGoat09年

14
jQuery在DOM上提供墙纸,但实际上并不能替代JavaScript。
罗布

2
@huy MDN,不是MDC或MDE
maan81

Answers:


63

好像没有官方的JavaScript版本。所有的浏览器都制作了自己的JavaScript引擎-不过有些浏览器使用的是相同的。但是特别是Internet Explorer具有自己的版本,该版本不支持其他浏览器所支持的很多功能,因此很难进行一般的JavaScript参考。

编辑:
虽然我知道有官方的ECMA标准和开发团队,但我的观点是,只要浏览器(Internet Explorer)不符合要求,它就没有关系。最终,客户也希望JavaScript也能用于Internet Explorer。他们不会在乎ECMA标准,只是希望它能起作用。这是JavaScript库出现的地方,但这是另一个故事。

HTML和CSS都是同样的问题,在以下情况下我们才能使用这些工具进行积极的开发:

  • 所有浏览器都支持它们。
  • 我们为浏览器提供代码以使其支持。
  • 没关系,并非所有浏览器都支持。

Edit2:
Internet Explorer越来越接近Microsoft:Edge的新浏览器项目。但是,这并没有真正改变整体情况。如果我们需要支持不同的浏览器,我们还有很多。开发人员一直在努力突破可能的极限。这意味着我们经常遇到这个问题,我们要支持的某些浏览器版本不支持该标准的某些功能(通常有点不稳定),这意味着我们需要采取一些解决方法或使用框架来实现缺少的在功能上。


我知道,迈克尔根据上述ECMA-262标准,不同的浏览器都有自己的实现吗?

3
@huy:是的-可悲的是,该标准的支持水平不同/变化多样……
Andrzej Doyle,2009年

1
-1,则一个官方的JavaScript标准:这就是所谓的EcmaScript,有它背后的官方机构:en.wikipedia.org/wiki/Ecma_International
哈森

我不确定为什么您会比其他任何浏览器都更偏向Internet Explorer,因为它在支持ECMA“标准”方面表现更差。

5
@ראובן:因为是/过去。长期以来,IE不仅具有许多其他浏览器所没有的严重错误,而且还缺少其他浏览器所具有的重要功能。IE8和9已经赶上了很多,所以情况正在改变。但是多年来,IE一直很糟糕,而其他浏览器都具有良好的ECMAScript支持。另外,ECMAScript 一个标准。我不确定为什么要将它放在引号中。
Pauan 2011年

28

您可以尝试使用ECMAscript官方网站,

http://www.ecmascript.org/

但实际上有用的是每个浏览器的实现。

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

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


那份备忘单已经死了。我可以建议caniuse.com吗?
Grinn

谢谢,我链接到新链接,并解释了一下它的含义。感谢您的注意!
维克多

好的,我会检查一下。
Grinn

22

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

您还拥有5.1版ECMAScript语言规范 (或作为PDF,权威规范)

并且来自Microsoft:JavaScript语言参考:“此文档说明了JavaScriptMicrosoft实现,该实现符合ECMAScript 5th Edition语言规范。它还提供了Ecma标准中未包含的其他功能。”


8
IE没有JavaScript引擎-而是实现了JScript(在很大程度上兼容)。msdn.microsoft.com/zh-cn/library/yek4tbz0%28VS.85%29.aspx看起来像是官方参考资料。
昆汀

3
嗯... developer.mozilla非常有用,但是我不会称之为“官方”。ECMAScript语言规范更接近“官方”。
史蒂夫·哈里森

4
ECMAScript语言规范是ECMAScript的官方参考。JavaScript是ECMAScript的超集,由Netscape创建,Mozilla从Netscape继承了MDC(尽管自那时以来名称已更改)
Quentin

+1为ECMAScript标准。
詹森·S,2009年

@Quentin-有趣的是,您引用的MSDN链接的标题现在是“ JavaScript参考”。但是,MSDN文章“ JScript(ECMAScript3)”指出:“ JScript是ECMA 262语言规范(ECMAScript版本3)的Microsoft实现。只有少数次要例外(以保持向后兼容性),JScript是的完整实现。 ECMA标准。”
DavidRR 2014年

8

如果您使用的是ECMAScript网络(占99.9%的人),那么除了该语言的基本语法(在上述ECMA-262规范中发现)之外,您可能正在寻找的是DOM参考-这是ECMAScript API,用于与Web文档进行交互。

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

(顺便说一句,至于命名混乱-ECMAScript是正式标准的名称,“ Javascript”和“ JScript”是Netscape和Microsoft专有的“ forks”)



3

Mozilla文档团队(例如Eric Shepherd)的成员对MDC上JavaScript页面进行的任何修订都是官方的。JavaScript由Mozilla正式维护,因此只有Mozilla的文档才是正式的。Mozilla当前制造了唯一支持JavaScript的引擎,其他所有引擎都实现了ECMAScript。JavaScript和ECMAScript有很多区别(例如,很棒的声明)。let


3

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

现在,尽管我们在http://es5conform.codeplex.com/上具有EMCAScript 5一致性套件,但似乎有些共识认为ECMAScript实现将更加紧密地结合在一起,从而使ECMAScript更有可能成为该语言的官方参考。


2

我发现老式的Netscape 4 JavaScript文档对于此目的非常有用。尽管它们显然已经完全过时了,并且其中的某些DOM功能(如Layers)早已消失,但对于语言基础而言,它们确实很扎实。

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

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



0

我认为“正式”是“由负责JavaScript的人写的”。

只是在这里进行推测,但是负责JavaScript的人员(ECMA)不会直接从中赚钱,并且可能没有编写参考文档的任何特殊技能。因此,他们既没有动力也没有能力编写良好的参考书。

就个人而言,我喜欢JavaScript: O'Reilly 的权威指南。十一月份将出版第六版。


2
对,他们是。Sun拥有JavaScript的商标,但已将其许可给Netscape。甲骨文收购了Sun,因此现在甲骨文拥有该商标(他们仍将其许可给Mozilla)。HTML和CSS由W3C定义,所以这是另一回事。Firefox中的JS引擎包含许多其他浏览器所没有的专有(很棒)功能。JavaScript的创建者(Brendan Eich)是ECMAScript官方委员会的成员,并且还为Mozilla工作。
2011年

1
此外,请注意以下链接:en.wikipedia.org/wiki/ECMAScript#Dialects Firefox具有所谓的“ JavaScript 1.8.5”,如上所述,它包含许多其他浏览器中找不到的高级功能,例如对象/数组解构/理解。 ,生成器/迭代器,let块/语句等。还要注意该链接中的第二个脚注,即“ Mozilla管理JavaScript的正式版本。大多数声称JavaScript具有“遵从性”的非Mozilla实现实际上并不支持大多数JavaScript扩展;而是针对ECMA-262,第3版。”
2011年

1
我会注意到ECMAScript与JavaScript不同。ECMAScript是Ecma定义的标准。浏览器通常非常擅长支持ECMAScript标准,而当大多数人说“ JavaScript”时,它们真正的意思是ECMAScript。不幸的是,情况和术语如此混乱,但事实确实如此。因此,在大多数情况下,JavaScript的非正式定义是“无论浏览器做什么”,但是从官方角度来说,Mozilla确实对此负责。
2011年

1
这意味着,任何要求“官方JavaScript参考”的问题都太含糊,无法准确回答。您拥有正式的ECMAScript标准,浏览器中JavaScript的实际实现,MDC(涵盖Firefox中的官方JavaScript实现),然后当然还有非常流行的非官方文档,例如w3schools。所有这些都很有用,因此实际上并没有像Python这样的“单正确”引用。
2011年

2
(也许我应该将其发布为实际答案,而不是一系列评论……哦)
Pauan 2011年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.