Javascript 了解",;“类型”;a<;脚本>;标签
我正在寻找htmlJavascript 了解",;“类型”;a<;脚本>;标签,javascript,html,babeljs,react-jsx,Javascript,Html,Babeljs,React Jsx,我正在寻找html标记中type属性的清晰解释。在我作为一名网络开发人员的职业生涯中,我从互联网上得到的指导是: 只需编写,然后将javascript放入其中 在html5中,只需编写,因为文本/javascript是默认值 在很长的一段时间里,我很天真,只是按照别人告诉我的去做。现在我正在学习ReactJS,这里有一组新的说明: 在文件顶部包含babel脚本 现在写 瞧!现在,您可以在该标记中编写一些看起来很像Javascript的东西,但它还有一系列很酷的额外特性 我想了解将type
标记中type
属性的清晰解释。在我作为一名网络开发人员的职业生涯中,我从互联网上得到的指导是:
- 只需编写
,然后将javascript放入其中 - 在html5中,只需编写
,因为
是默认值文本/javascript
- 在文件顶部包含
脚本babel
- 现在写
- 瞧!现在,您可以在该标记中编写一些看起来很像Javascript的东西,但它还有一系列很酷的额外特性
type='text/babel'
添加到script
标记背后的魔力。我知道javascript是在浏览器中实际运行的唯一语言,那么额外属性、babel脚本和您在其中编写的代码之间的关系是什么呢。那个标签不知怎么找到了巴别塔的脚本并对它做了些什么吗?这是允许在javascript执行之前对脚本标记中的文本进行预处理的基本browser/js功能吗?我还应该知道什么
这个问题的目标是消除神秘性。如果浏览器注册了MIME类型(历史上可能是VBScript或PerlScript的情况),那么浏览器将通过相应的解析器/编译器/解释器等运行MIME类型 否则,它只是DOM中的一个元素,其中有一个文本节点 其他代码(例如用JavaScript编写的代码)可以找到DOM元素,读取其内容,然后对其执行操作。巴贝尔就是这样做的 我想了解将type='text/babel'添加到脚本标记背后的魔力 没有真正的魔力:页面上包含的Babel脚本会查找这些元素,并动态地将它们传输到ES5中,然后让浏览器运行生成的ES5代码。在脚本元素上设置
类型
,可以做两件事:
脚本上的类型
,通常来自:
type
属性提供脚本语言或数据格式。如果属性存在,则其值必须是有效的MIME类型。不能指定字符集参数。如果属性不存在,则使用默认值“text/javascript”
然后在稍后解释如何处理脚本元素时:
如果用户代理不支持脚本块类型为此script
元素提供的脚本语言,则此时用户代理必须中止这些步骤。脚本未执行
值得一提的是,如何在浏览器中传输:
在浏览器中编译有一个相当有限的用例,因此如果您在生产站点上工作,您应该在服务器端预编译脚本。有关更多信息,请参阅
(在他们说“编译”的地方,我们大多数人会说“传输”。不,浏览器对type=text/babel
没有任何作用。主流浏览器只理解type
属性中支持的MIME类型,并且总是默认为ECMAScript(JavaScript)。到目前为止,大多数浏览器仍不完全兼容ES6
Babel是一个编译器,它将
中包含的任何ES6代码编译成ES5JavaScript,这是大多数现代浏览器都能理解的版本。运行babel代码时,浏览器会忽略babel脚本。Babel是一个查找它、将代码转换为ES5并告诉浏览器运行它的库