zoukankan      html  css  js  c++  java
  • CommonJs和ES6的模块加载的区别

    在CommonJs中,通过exportsmodule.exports来导出模块中的内容,通过require来导入
    在ES6中,通过exportexport default来导出模块中的内容,通过import来导入

    他们的主要区别有:

    CommonJS中,对于导入的数据,如果是原始类型的数据,是进行了复制,对其进行更改不会影响到被导入模块中的数据;而引用数据类型的数据,只是进行了浅拷贝,对其进行更改会影响到被导入模块中的数据;
    CommonJS中,在导入模块时,就整个执行了代码;
    CommonJS中,在同模块中多次导入,只会执行一次代码,后面的都是使用缓存,除非清了缓存;
    CommonJS中,循环模块加载时,只会输出已执行的部分,未执行的不会被输出

    ES6中,属于【动态只读引用】;
    动态是指,当原始值发生变化时,import的数据也会改变。无论什么数据类型;
    只读是指,import的数据不可更改,import时只是生成一个对原始值的只读引用,当执行到时,才去被加载的模块中取值;
    在循环加载中,只要两个模块中存在某种引用,模块就会被执行。

  • 相关阅读:
    java 求 1!+2!+3!+....+10!的和为
    Java 循环控制语句
    java for 循环 九九乘法表
    Java for 循环
    Java while 和 do...while
    Java if语句
    Java switch 语句
    java a++ 和 ++a 理解
    Java 自动转换和强制转换
    二叉树遍历
  • 原文地址:https://www.cnblogs.com/ashen1999/p/13862385.html
Copyright © 2011-2022 走看看