CommonJs介绍及跟ES6模块化的区别

Posted 老张在线敲代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CommonJs介绍及跟ES6模块化的区别相关的知识,希望对你有一定的参考价值。

CommonJs介绍

CommonJs模块化是node中的第三方的规范

CommonJS模块规范主要分为四部分:定义模块、暴露(导出)模块、引入模块,模块调用。

name.js

> // 定义模块
const name={
    aname:"zybq",
    sayname(){
        console.log(this.aname)
    }
}
const age={
    age:100
}
//暴露模块
module.exports={
    name,
    age
}

app.js

// 模块引用
const {name,age}=require("./name")//引入自定义包
//模块调用
name.sayname()
console.log(age.age)

引入使用:

require("path")

导出模块使用

exports.name 或 module.exports.name 或 module.exports={} 

什么是模块化

模块化就是将变量和函数 放入不同的文件中

模块的作用域是私有的 内部定义的代码只能在当前文件中使用 外部使用那么需要将此模块暴露出去

模块化的好处

减少全局变量 避免变量名和函数命名冲突

提高代码的复用性和维护性

CommonJs模块化和ES6模块化的区别

CommonJS 模块总是在运行时加载
ES6 模块编译时执行

CommonJS 输出的是值的拷贝
ES6 模块输出的是值的引用,输出接口动态绑定

CommonJS 模块使用require()引入和module.exports导出
ES6 模块使用import引入和export导出。

commonjs 在使用模块的时候是运行时同步加载的 拷贝模块中的对象
ES6 模块的import命令是异步加载,有一个独立的模块依赖的解析阶段。

以上是关于CommonJs介绍及跟ES6模块化的区别的主要内容,如果未能解决你的问题,请参考以下文章

CommonJS模块与ES6模块的区别(require和import)

ES6与 CommonJS 模块化的区别

commonjs模块和es6模块的区别?

ES6模块和commonjs模块的区别

ES6模块和commonjs模块的区别

ES6 模块与 CommonJS 模块的差异