模块化(Commonjs与ES6 Module)

本文探讨了ES6 Module与CommonJS模块的区别,包括加载原理、导出与导入方式、循环加载以及动态加载。ES6 Module强调静态加载,提供更高效的执行效率和优化机会,如tree shaking,而CommonJS模块适用于运行时加载和缓存。
摘要由CSDN通过智能技术生成

模块化(Commonjs与ES6 Module)

描述:

1.CommonJS 和 AMD 模块,都只能在运行时确定这些东西。比如,CommonJS 模块就是对象,输入时必须查找对象属性。

2.ES6 模块的设计思想,是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。ES6 模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入。

注意:es6 module自动开启严格模式。

ES6 Module

使用export导出,import导入。

export

需要特别注意的是,export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。

// 报错
export 1;

// 报错
var m = 1;
export m;

解析:上面的两个例子都是直接导出了1,1只是一个值,不是接口。

// 写法一
export var m = 1;

// 写法二
var m = 1;
export {
   m};

// 写法三
var n = 1;
export {
   n as m};
export default

export default默认导出,只能在一个文件中使用一次,无需关联内部接口名。

export default function () {
   
  console.log('foo');
}

正是因为export default命令其实只是输出一个叫做default的变量,所以它后面不能跟变量声明语句

// 正确
export var a = 1;

// 正确
var a = 1;
export 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值