ES6 模块与 CommonJS 模块有什么异同?

ES6 模块与 CommonJS 模块有什么异同?

ES6 Module 和 CommonJS 模块的区别:

CommonJS 是对模块的浅拷⻉,ES6 Module 是对模块的引⽤,即 ES6
Module 只存只读,不能改变其值,也就是指针指向不能变,类似 const;
import 的接⼝是 read-only(只读状态),不能修改其变量值。 即
不能修改其变量的指针指向,但可以改变变量内部指针指向,可以对
commonJS 对重新赋值(改变指针指向),但是对 ES6 Module 赋值会
编译报错

commonjs模块主要是最初应用于服务端(node.js),导入导出方式为module.exports和exports,导入方式为require("...")
calculator.js
module.exports = {
  name: 'sum',
  add: (a, b) => a + b
}

// index.js
const sum= require('./sum')
ES6 Module 和 CommonJS 模块的共同点:

CommonJS 和 ES6 Module 都可以对引⼊的对象进⾏赋值,即对对象内
部属性的值进⾏改变。

sum.js
const name = 'sum'
const add = (a, b) => a + b
export {name , add as sum} // 导入时即为 name 和 sum

//index.js
import {name as myName, sum} from './sum.js'
console.log(sum(1, 2), myName)
AMD (异步加载,异步执行,)
异步加载,不会阻塞浏览器构造dom树
自动加载依赖,不再需要手动引入模块间的依赖关系
目前requireJS和curlJS为这个标准的主要实现
CMD(异步加载,同步执行)
CMD是淘宝团队开发的SeaJS在推广过程中的产出,弥补了AMD的一大缺点——异步执行,由于AMD是异步加载,所以执行的顺序与加载速度有关,并且不可控,这就非常不友好,于是CMD提倡的依赖就近就解决了这个问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值