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