cmd和amd的区别 commonjs和es6的区别

  1. commonJS 缓存/浅复制

    1. 对于基本数据类型,属于复制;对于复杂数据类型,属于浅拷贝
    2. 当使用require命令加载同一个模块时,优先取缓存中已经缓存的模块
  2. es6模块 动态只读引用

    1. es6模块中的值属于【动态只读引用】
    2. 对于只读来说,即不允许修改引入变量的值,import的变量是只读的,不论是基本数据类型还是复杂数据类型。当模块遇到import命令时,就会生成一个只读引用。等到脚本真正执行时,再根据这个只读引用,到被加载的那个模块里面去取值。
    3. 对于动态来说,原始值发生变化,import加载的值也会发生变化。不论是基本数据类型还是复杂数据类型
  3. amd 依赖前置

  4. cmd 就近依赖

  5. 浏览器不兼容CommonJS的根本原因

    1. module
    2. exports
    3. require
    4. global
  6. 浏览器加载 CommonJS 模块的原理与实现
    http://www.ruanyifeng.com/blog/2015/05/commonjs-in-browser.html

你可能感兴趣的:(cmd和amd的区别 commonjs和es6的区别)