类型=";text/ecmascript";vs type=";text/javascript“;

类型=";text/ecmascript";vs type=";text/javascript“;,javascript,ecmascript-5,Javascript,Ecmascript 5,我在读一本关于学习JavaScript的书,书中有以下段落: …1997年年中,微软和网景公司与 欧洲计算机制造商协会发布了第一个 名为ECMAScript或具有正式格式的标准版本 ECMA-262 正如我在这本书中看到的一样,JavaScript和ECMAScript是相同的,只是名称不同而已 另一方面,在Dreamweaver、括号和其他一些编辑器中,有一些自动完成建议如下: 当我想向页面添加脚本标记时 我想知道ECMAScript和Javascript之间是否有区别,我应该何时使用tex

我在读一本关于学习JavaScript的书,书中有以下段落:

…1997年年中,微软和网景公司与 欧洲计算机制造商协会发布了第一个 名为
ECMAScript
或具有正式格式的标准版本
ECMA-262

正如我在这本书中看到的一样,JavaScript和ECMAScript是相同的,只是名称不同而已

另一方面,在Dreamweaver、括号和其他一些编辑器中,有一些自动完成建议如下:

当我想向页面添加脚本标记时

我想知道
ECMAScript
Javascript
之间是否有区别,我应该何时使用
text/Javascript
text/ECMAScript

TL;如果您不关心旧浏览器,DR只需省略
type
标记即可

ECMAScript是由ECMA国际as和标准化的语言规范。JavaScript是实现此规范的编程语言。ECMAScript有几个版本。最新版本是第6版(2016年),但到目前为止,大多数JavaScript实现只兼容第5版

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

但是,文档中定义了JavaScript代码的MIME类型,其中指出
text/JavaScript
text/ecmascript
都已过时,应替换为
application/JavaScript
application/ecmascript

对于此类内容使用“文本”顶级类型是众所周知的 可能有问题。因此,本文档定义了text/javascript和text/ ecmascript,但将其标记为“过时”

RFC为
应用程序/ecmascript
定义了比
应用程序/javascript
更严格的处理规则,但这涉及MIME类型参数和字符编码的处理,而不是代码本身的解释:

在所引用的案例中,text/javascript、text/ecmascript和application/javascript类型的实现应满足以下要求,而application/ecmascript类型的实现必须满足本节中定义的要求:[……]

对于应用程序/ecmascript媒体类型,实现不能处理标有“版本”参数的内容,就像没有指定此类参数一样;[……]

以下错误处理行为建议用于媒体类型text/javascript、text/ecmascript和application/javascript,而对于媒体类型application/ecmascript则是必需的

除了RFC,还有W3C的HTML5标准:例如,空
类型
属性的默认值是
application/javascript
,但不再提及任何特定的MIME类型。相反,他们将任何不带类型或MIME类型的
script
标记定义为所谓的“经典脚本”:

省略该属性、将其设置为空字符串或将其设置为JavaScript MIME类型Essential匹配,意味着该脚本是一个经典脚本,将根据JavaScript脚本顶级产品进行解释。经典脚本受async和defer属性的影响,但仅当设置了src属性时才受影响。作者应该省略type属性,而不是冗余地设置它

一般来说,如果您必须支持较旧的浏览器,我会省略
type
属性(根据HTML5标准的建议)或使用
type=“text/javascript”
。HTTP服务器应将JavaScript代码作为
application/JavaScript

提供(上次更新于2019年7月16日)表示,如果使用
标记的
type
属性指定的语言类型被删除,则返回到
text/JavaScript

该规范还规定:

服务器应使用text/javascript作为javascript资源。服务器不应使用其他JavaScript资源,也不得使用非


你再也不需要了……
Javascript
就是大家所说的,
EMCAscript
是官方ISO支持的规范,因为JS标准由ECMA管理。投票重新开放,因为作为这个问题的副本链接的问题没有明确说明何时使用
text/ecmascript
MIME类型;没有直接提到这一事实。。。我如何投票支持重新打开?如果它被称为ECMAscript会更好,以避免与Java混淆。我从未见过这个
application/javascript
application/ECMAscript
在智能意义上,同时提供
script
标记的
type
属性。我使用Visual Studio在asp.net和asp.net mvc应用程序上工作。@RBT即使您的代码完整性不建议使用这些类型,它们也是有效的。然而,对于HTML5,您根本不需要type属性。谢谢你的信息。我看到
type
属性有一个默认值
text/javascript
启动HTML5,所以它变成了可选的。美好的减少键入:)。我希望根据您引用的RFC,在下一版本的HTML中,默认值将变成
application/javascript
。对于web应用程序,我们应该坚持使用
text/javascript
,请参阅,谢谢您的提示,我已经更新了我的答案。