js中ES Module和CommonJs的区别

1、CommonJS模块装入js文件的过程是同步的,运行时装入。

2、ES Module装入js文件的过程是在编译(解析)时装入的,它是异步的。

3、ES Module通过export导出的是变量本身的引用。

实例

let name = 'coderwhy';
 
setTimeout(() => {
  name = "湖人总冠军";
}, 1000);
 
setTimeout(() => {
  console.log(name);
}, 2000);
 
export {
  name
}

1、当代码在一个环境中执行时,它将创建一个功能域链。2、作用域链的使用,让变量沿着作用域链层层向上搜索,直到整体环境。3、每层功能域的性能消耗巨大,需要减少缓存顶部对象的搜索层数。实例var color = "blue" ...