JavaScript、JScript和ECMAScript有什么区别?

32

好的,我正在努力学习JavaScript,以便编写良好、干净的客户端代码,但每当我认为自己取得了进展时,总有些事情会使我停滞不前!

我想知道:

  1. JavaScript、ECMAScript和JScript有什么区别?

  2. 我应该专注于学习哪一个?

  3. 如果它们被分版本,我应该支持哪个版本?

  4. 有没有非常好的参考资料(网站/书籍等)是必备的/必读的?

  5. 如何确保我编写的内容符合所有主要浏览器(IE、FF、Safari、Chrome、Opera等)的规范?

  6. 最重要的是……是否有核心对象的参考资料(Array、Number等),以便我知道已经实现了什么和我需要自己完成什么?

谢谢。


6
ECMAScriptжҳҜдёҖз§Қж ҮеҮҶпјҢе…¶дёӯJavaScriptе’ҢJScriptжҳҜдёӨз§ҚдёҚеҗҢзҡ„е®һзҺ°пјҲжҲ–вҖңж–№иЁҖвҖқпјүгҖӮ - BoltClock
1
这里是同样的问题:https://dev59.com/GnVC5IYBdhLWcg3w9GLM - Edson Medina
维基百科:如果您只阅读第一部分,JScript 将回答您问题的一部分。 - WhyNotHugo
以下问题有一定的重复:JavaScript 和 ECMAScript 有什么区别? - jotik
我发现的最好的JavaScript/ECMAscript书籍是Douglas Crockford所著的《JavaScript: the Good Parts》。他还推广了JSON数据格式。在谷歌上搜索这本书名,你会在前几个结果中找到一个合法的免费副本。 - Mat Jones
6个回答

29

Javascript是当初由Netscape开发时的原始名称。

JScript是微软自己实现的名称。

ECMAScript是由ECMA开发的语言标准名称,从最初的Javascript实现而来。

因此,它只是一种语言,但有不同的实现。

Javascript和JScript的实现在支持方面略有不同,但每个版本都支持相应版本的ECMAScript标准中的内容。通常您只需使用几个版本之前已支持的内容,以便在所有仍在使用的浏览器中使用它。

一个参考是Mozilla开发者网络,因为Mozilla是当前Javascript的开发者。您可以找到每种方法和属性支持的版本。

JScript的文档在Microsoft开发者网络上记录,并提供类似的支持信息。(请注意,所有Microsoft文档均在此处提供,不仅仅是JScript,例如您需要搜索“jscript数组”,而不仅仅是“数组”.)

使用像jQuery这样的库可以避免处理浏览器之间的某些兼容性问题。


4
  1. ECMAScript是由Ecma International在ECMA-262规范和ISO/IEC 16262中标准化的脚本语言。该语言广泛用于网站客户端脚本编程,以多种众所周知的方言形式存在,如JavaScript、JScript和ActionScript。

  2. 取决于你,但我认为最常用于Web开发的是JavaScript。

  3. JavaScript在ECMAScript语言标准中正式制定,并主要以客户端JavaScript的形式使用。

  4. 我建议阅读这本书

  5. 通过更深入地了解语言本身并编写测试来学习更多内容。

  6. 在这里查看


4
http://w3fools.com/,不如使用MDN。 - epoch

3
重要的是要了解,ECMAScript是一个标准,定义在上个世纪。而Javascript源自ECMAScript。派生的意义在于它实现了该标准。
最大的区别在于,Javascript实际上只存在于浏览器中,也就是说它本身并不是一个标准。每个浏览器都可以(而且很多都会)实现自己的方法。
因此,如果你真的想学习并编写干净的代码,那么我认为你必须先熟悉ECMAScript标准。
对于第3点:由于Javascript是由浏览器实现的,这实际上取决于您要为哪些浏览器开发代码。旧版本的浏览器可能需要通过代码进行一些单独的处理。
对于第5点:同样,Javascript可以检查请求页面所加载的浏览器(或通常的客户端软件)。也就是说,如果情况变得很糟,您可以在代码中单独处理每个浏览器。但大多数时候它们都相当符合规范(至少是较新的版本)。
至于第4和第6点,我需要先自己检查一下。
希望我能帮助你一点。
问候

3
  1. ECMAScript是语言,JavaScript和JScript是方言。

  2. 我个人会看并学习JavaScript。

  3. 这取决于您想要支持哪些浏览器,可以轻松地通过Google搜索。

  4. MDN是一个非常好的网络资源。JavaScript: The Good PartsJavaScript: The Definitive Guide都是非常好的书籍,前者简短而简明,后者非常详细。

  5. 像jQuery这样的JavaScript库非常好,因为它涵盖了所有浏览器的怪癖。Google是你的朋友。

  6. MDN


2
定义方言。 - Witold Kaczurba

1
  1. 请看维基百科。
  2. Javascript是一种语言,这可能是你想学习的,而不是一个规范。
  3. 欢迎来到地狱。ModernizrjQuery存在是有原因的。除非你在使用Node.js等服务器端Javascript,否则你只需要关注一个JS引擎(例如Node的V8)。
  4. MDN
  5. 测试、测试、再测试。尽量不要使用太新的功能,使用库。
  6. MDN告诉你哪个浏览器支持什么。

2
请给我维基百科。[3on pls] (http://knowyourmeme.com/memes/dolan) - BoltClock
我并不自诩拥有比人类最大的百科全书更好的知识。你呢? - 3on
6
至少你可以引用或概括其中的内容,不这样做与不回答没有什么区别。 - BoltClock
1
Stackoverflow应该用于询问那些不容易在维基百科上得到答案的问题。这样做是对社区的一种侮辱。 - 3on
2
这是正确的。但是,当被问到这样的问题时,不应该给予回答。 - nnnnnn

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接