<script type=text/javaScript> vs <script type=module>

30

使用<script type=text/javascript><script type=module>在HTML中加载JavaScript文件有什么区别?


3
使用 type="module",您可以将模块导入到您的代码中。 - CodeF0x
1
"type="text/javascript""已经过时。 - ASDFGerte
4
请参考 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/script。 - Adrian W
1个回答

25
HTML5规范不鼓励使用type=text/javascript
https://www.w3.org/TR/html5/semantics-scripting.html#element-attrdef-script-type中得知:

省略(type)属性或将它设置为JavaScript MIME类型意味着该脚本是一个经典脚本,将根据JavaScript Script顶层产生式进行解释。 经典脚本受字符集,async和defer属性的影响。 作者应省略该属性,而不是重复给出JavaScript MIME类型。

将属性设置为字符串“module”的ASCII不区分大小写匹配项,表示该脚本是一个模块脚本,将根据JavaScript Module顶层产生式进行解释。 模块脚本不受字符集和defer属性的影响。

(我强调的部分)


6
除了"Andrian W"的回答外,如果我们设置脚本类型为module,我们可以在此脚本中导入其他JavaScript模块,例如:<script type=module> import {sum} from "./arithmetic" </script> - Henok Tesfaye
5
脚本类型的模块中的变量默认为该脚本块范围内,不同于普通脚本块中的全局变量。你可以通过在 window 对象下显式声明来定义全局变量。 - Kolya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接