乐趣区

关于javascript:moduleexports-exports-export-export-default-的区别

module.exports 和 exports

1 . Node 利用由模块组成,采纳 CommonJS 模块标准;

每个文件就是一个模块,有本人的作用域,在一个文件内定义的变量,函数,类都是公有的;

CommonJS 标准规定,每个模块外部,module代表以后模块,module是一个对象,它的 exports 属性(即 module.exports
是对外的接口。

var x=5;
module.exports.x=x;

下面代码通过module.exports 输入变量x

require 办法用于加载模块

var x =require('./x.js');
log(x);

2 . exports变量
为了不便,Node为每个模块提供一个 exports 变量,指向 module.exports,
等同在每个模块头部,有一行这样的命令

    var exports = module.exports;
    // 应用 必须要导出一个具体的属性名
    exports.utils=()=>{};

export 和 export default

1 . exportexport default 属于 ES6 module(简 ESM);
export 命令用于规定模块的对外接口,import用于输出其余模块提供的性能

export let year =2019;

另一种写法和 as 的用法

let month=11, year = 2019;
function sum(){};
export {month, year as get_years, sum};

2 . exportimport 的复合用法

export {foo as myFoo} from 'my_module';
export * from 'my_module';

3 . 为了给用户提供方便,不必浏览文档就能加载模块,就要用到 export default 命令,为模块指定默认输入。

export default function(){//todo}
退出移动版