es6 - modules load 模块加载

我们知道有3种方式在浏览器里加载js代码:

1:之间嵌入js代码**
2: 通过src引入外部js文件**
3:加载js代码如workers(例如 web worker或者service worker)

因为js module和纯粹的js脚本代码有不同之处(例如js module里的变量只在本module里面可见,不会加到global,所以也不会挂在到window上),为了能加载js module代码,上面提到的3种机制都会有相应的改变。接下来就具体来看一下,浏览器加载module代码的机制:

1: js module的加载依然有上面提到的三种方式
我们先来说前2种,也是我们最熟悉的通过 >

以module的方式加载,需要把

3: defer只对带src的从外部加载js文件的是不起作用的。

async
先来复习一下async的特性:
1: 带有async的

到底是先执行index.js还是main.js,这里是不能确定的。

3:加载module的时候文件路径
与加载常规的js代码不同的是,模块加载对文件路径有要求,下面4种是合法的:
1:以 / 开头的根目录
2:以 ./ 开头的当前路径
3:以 ../开头的父路径
4:一个URL路径
比如:










你可能感兴趣的:(javascript)