export, export default| exports, module.exports | import, require

export, export default| exports, module.exports | import, require

分为两大块,涉及到es6的导入导出和nodejs的导入导出

  • node.js

exports

导出的方法,直接传给module.exports

module.exports

module.exports才是真正的接口,exports只不过是它的一个辅助工具。最终返回给调用的是module.exports而不是exports。所有的exports收集到的属性和方法,都赋值给了Module.exports。当然,这有个前提,就是module.exports本身不具备任何属性和方法。如果,module.exports已经具备一些属性和方法,那么exports收集来的信息将被忽略。导出的方法,exports不可以获得

  • ES6

export

导出常量、函数、文件、模块,一个文件可以export多个,导入export导出的文件时,语法如下

// 导出,a.js
export a = 5;
export str = '';
export function c() {
    return str;
}

// 导入, 需要带花括号的
import {a, str, c} from 'a.js';

export default

其实此处相当于为sex变量值"boy"起了一个系统默认的变量名default,自然default只能有一个值,所以一个文件内不能有多个export default。

// 导出
var sex="boy";
export default sex
// 引入
import sex from './a.js'

require

是属于nodejs的一个模块,属于commonjs规范

import

es6的新模块规范

推荐阅读更多精彩内容