在script标签写export会抛错
在html中用的比较多的最原始是<script type="text/javascript" src="xx.js"></script>
type类型
text/javascript
,text/ecmascript
, application/javascript
, 和application/ecmascript,application/json,module
应对标题,着重看下type=”module”
平时写纯静态页时,不会用到,但是大家使用vue-cli,vite
都使用得最多的模块化,import,export
使用比较频繁 如果不写type=”module”,则export就会报错。
JavaScript 有两种源文件,一种叫做脚本,一种叫做模块。这个区分是在 ES6 引入了模块机制开始的,在 ES5 和之前的版本中,就只有一种源文件类型(就只有脚本)
脚本是可以由浏览器或者 node 环境引入执行的,而模块只能由 JavaScript 代码用 import 引入执行。
从概念上,我们可以认为脚本具有主动性的 JavaScript 代码段,是控制宿主完成一定任务的代码;而模块是被动性的 JavaScript 代码段,是等待被调用的库。
模块和脚本之间的区别仅仅在于是否包含 import 和 export。脚本是一种兼容之前的版本的定义,在这个模式下,没有 import 就不需要处理加载“.js”文件问题。现代浏览器可以支持用 script 标签引入模块或者脚本,如果要引入模块,必须给 script 标签添加 type=“module”。如果引入脚本,则不需要 type。
<script type="module" src="xxxxx.js"></script>
所以script 标签如果不加type=“module”,默认认为我们加载的文件是脚本而非模块,如果我们在脚本中写了 export,当然会抛错。
此文章为3月Day17学习笔记,内容来源于极客时间《重学前端》,推荐该课程。