chrome 已经支持 module,需要注意 script 标签需要加上 type="module"
,
<script type="module" src="2.js"></script>
export
使用示例:
export var firstName = 'Michael';
export function multiply(x, y) {
return x * y;
};
export { last, year };
错误写法:
var m = 1;
export m;
import
示例代码:
import {firstName, lastName, year} from './profile.js';
import 'lodash';
只是将其内部的代码执行一遍,上面的例子也会执行module内部的代码。
module 内部定义的变量不会暴露出来。
模块整体加载:import * as circle from './circle';
export default
使用:
export default function() {
console.log('lala')
}
import fn from './1.js'
一个module中只能有一个 export default。
如果将module整体加载,export default 的内容也是其中一项,key 是 default
和直接export不同之处:
正确:
var a = 1
export default a
错误:
export default var a = 1;
总结:export 后面需要声明性质的东西,export default 后面需要具体的值
export 与 import 的复合写法
import { foo, bar } from 'my_module';
export { foo, bar };
可以写成:
export { foo, bar } from 'my_module';
注意,这样写以后,foo 和 bar 不能在当前的 module 使用
其它例子:
export { foo as myFoo } from 'my_module';
export * from 'my_module';
export { default } from 'foo';
import()
待补充
一些提示
import 引入的变量都是常量。
如果一个HTML文件引用了两个JS文件,这两个JS文件都引用了同一个module,前者对引用到的变量的修改会影响到后者读取到的内容(如果引用的变量是对象,可以修改其属性)。
网友评论