ES6 harmony

作者: 唯有前行可破焦虑 | 来源:发表于2018-11-20 10:00 被阅读0次

    1执行的顺序:

     一般来说,js引擎去执行一个模块(import)会做一下几件事情:

     1>语法解析(AST)词法分析语法分析:进行语法分析(AST),解析模块的源码,看是否有语法错误;

     2> 加载:递归地加载所有被导入的模块。

     3> 连接:没遇到一个新的模块,为其创建作用域并将模块内部申明的所有绑定填充到改作用域,其中就包含由               其他模块导入的内容;

    4>运行时:每一个新加载的模块内部执行所有语句;

    Import提前计算所有的依赖;

    ES6模块系统的实现:在编译的时候,计算所有依赖并将所有模块打包成一个文件,通过网络传输一个文件;

    静态VS动态:

    1只可以在模块的最外层作用域使用import和export,不可在条件语句中使用,也不能在函数作用域中使用import;

    2所有的到处标识符一定要在源码中明确出它们的名字,不可以利用类似数组遍历的处理方式去到处一系列名称列表;

    3模块对象被冻结了,不可以hack模块对象并为其添加polyfill风格的新特性;

    4一个模块的所有依赖项目,必须在模块代码执行之前就全部加载、解析、并及早链接,不存在通过import来动态按需加载的说法;

    5 import没有恢复机制,一个app囊括很多模块,其中一个模块无法加载或无法解析、编译错误,所有的模块都不回正常执行,利用webpack(rollup)可以再编译期期间,检测代码的错误;

    相关文章

      网友评论

        本文标题:ES6 harmony

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