type =“text / ecmascript”vs type =“text / javascript”

时间:2014-04-29 17:02:31

标签: javascript ecmascript-5

我正在读一本关于学习JavaScript的书,有这些段落:

  1997年中期,微软和Netscape,以及   欧洲计算机制造商协会,

发布了第一个   名为ECMAScript或具有官方形式的标准版本   ECMA-262 ...

就像我在本书中发现的那样,JavaScript和ECMAScript是相同的,并且在名称上是不同的。

另一方面,在Dreamweaver,支架和其他一些编辑器中,有一些像这样的自动完成建议:

enter image description here

当我想在我的页面添加脚本标记时。

我想知道ECMAScriptJavascript之间是否存在差异,我应该何时使用text/javascripttext/ecmascript

2 个答案:

答案 0 :(得分:15)

ECMAScript是由ECMA International标准化为ECMA-262ISO/IEC 16262的语言规范。 JavaScript是一种实现此规范的编程语言。 ECMAScript存在多个版本。最新版本是第6版(2016年),但到目前为止大多数JavaScript实现仅符合第5版。

除了ECMAScript之外,常见的JavaScript实现通常会添加更多功能,这些功能可能由其他机构(如W3C)标准化,或者可能是特定实现的专有(也就是特定于浏览器的#34;)功能。所以你可以说,ECMAScript代表了JavaScript的一个子集。

但是,JavaScript代码的MIME类型在RFC 4329文档中定义,该文档指出text/javascripttext/ecmascript都已过时,应由application/javascript替换为application/ecmascript

  

使用"文本"已知此类内容的顶级类型   有问题。因此,本文档定义了text / javascript和text /   ecmascript但标记为"过时"。

RFC为application/ecmascript定义比application/javascript更严格的处理规则,但这是指处理MIME类型参数和字符编码而不是代码本身的解释:< / p>

  

在引用的案例中,text / javascript,text / ecmascript和application / javascript类型的实现应该是application / ecmascript类型的实现必须实现本节中定义的要求:[...]

     

对于应用程序/ ecmascript媒体类型,实现不得处理标有&#34;版本&#34;参数,好像没有指定这样的参数; [...]

     

对于媒体类型text / javascript,text / ecmascript和application / javascript,以及媒体类型应用程序/ ecmascript的REQUIRED,推荐以下错误处理行为。

一般情况下,我会使用application/javascript(或text/javascript,如果您必须支持IE8等旧浏览器),以防止跨浏览器问题。如果你只关心HTML5,你也可以完全省略type-attribute。

答案 1 :(得分:0)

current version of the HTML standard最后更新时间为2019年7月16日)说,用type标签的<script>属性指定的语言类型退回到{{ 1}}(如果省略)。

还有规范specifies

  

服务器应将text / javascript用于JavaScript资源。服务器不应将其他JavaScript MIME types用于JavaScript资源,并且不得使用非JavaScript MIME types