我正在读一本关于学习JavaScript的书,有这些段落:
1997年中期,微软和Netscape,以及 欧洲计算机制造商协会,
发布了第一个 名为ECMAScript
或具有官方形式的标准版本ECMA-262
...
就像我在本书中发现的那样,JavaScript和ECMAScript是相同的,并且在名称上是不同的。
另一方面,在Dreamweaver,支架和其他一些编辑器中,有一些像这样的自动完成建议:
当我想在我的页面添加脚本标记时。
我想知道ECMAScript
和Javascript
之间是否存在差异,我应该何时使用text/javascript
或text/ecmascript
?
答案 0 :(得分:15)
ECMAScript是由ECMA International标准化为ECMA-262和ISO/IEC 16262的语言规范。 JavaScript是一种实现此规范的编程语言。 ECMAScript存在多个版本。最新版本是第6版(2016年),但到目前为止大多数JavaScript实现仅符合第5版。
除了ECMAScript之外,常见的JavaScript实现通常会添加更多功能,这些功能可能由其他机构(如W3C)标准化,或者可能是特定实现的专有(也就是特定于浏览器的#34;)功能。所以你可以说,ECMAScript代表了JavaScript的一个子集。
但是,JavaScript代码的MIME类型在RFC 4329文档中定义,该文档指出text/javascript
和text/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。