美文网首页
ES6 - Module

ES6 - Module

作者: 恒星的背影 | 来源:发表于2019-01-12 20:42 被阅读0次

    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,前者对引用到的变量的修改会影响到后者读取到的内容(如果引用的变量是对象,可以修改其属性)。

    相关文章

      网友评论

          本文标题:ES6 - Module

          本文链接:https://www.haomeiwen.com/subject/figqdqtx.html