module.exports 和 exports , export defult 和 export 之间的区别!!!

首选理解一下Commonjs模块标准 和 ES6模块标准

  1. Commonjs模块标准

    • Node利用是由模块形成的,采纳的是Commonjs标准。
    • Commonjs标准=> 每个文件就是一个模块,每个模块都有本人的作用域,文件外面的变量、函数等都是公有的,对外不可见的。
    • module就是代表这个模块,exports就是对外的接口,加载模块,就是加载module.exports属性。 exports 其实也是module.exports,相当于在模块上增加 const exports = module.exports
    • 应用require进行导入模块

      module.exports = xxxexport.xxx = xxx
    • 留神:对于类的到处要应用module.exports = xxx 不能应用export.xxx
  2. ES6模块

    • 在创立js文件的时候,export语句用于从文件(模块)中,导出实时绑定的函数、对象或者是值。
    • 导出的形式

      • 默认导出

        export defult xxx // 导出变量export defult function // 导出 函数export defult Class // 导出 类
      • 命名导出

        export { xxx }
    • 导入

      • 导入的时候,如果是默认导入,

        import { xxx } from '..'import {xx as xxx} from '..'
      • 留神: 默认导出的话,在导入的时候引入的变量名,能够不雷同

        //x.jsexport defult let a = 3// y.jsimport { b } from './x.js'console.log(b) // 3