1.export与import
export与import是es6的模块命令;export用于规定模块对外暴露的接口,import用于引入其他模块提供的功能;
export var str = 'hello'; // ok
export function fn(x, y) {
// some thing
} //ok
var str1 = 'hello';
var str2 = 'world';
export {str1, str2}; //ok
export {
str1 as newName1,
str2 as newName2
} //ok
import { fn1, fn2, fn3 } form './xxxx.js'; //大括号内的变量名必须与被导入的模块对外接口的名称相同
import { fn1 as newName1 } form './xxx.js';
2.exports与module.exports
- 每一个node.js执行文件会创建一个module对象,同时该对象会创建一个exports属性,初始化的值是{};即module.exports={};
- exports是moudle.exports的引用,即exports=module.exports={};即默认exports与module.exports指的是同一块内存。
- 当module.exports或export指向新对象时,exports与module.exports就断开了连接,通过exports = module.exports 让exports 重新指向 module.exports。
-
module.exports方法可以单独返回其他数据类型,如数组,字符串,数字等类型;而exports返回的只能是一个对象
即module.exports = function() {}; module.exporst = [...];是没问题的;而exports.xx = yyyy; 只能是这样写;
- 当使用了module.exports导出数据后,该模块再使用exports导出的数据将会被忽略。即模块导出的时候,真正导出的是module.exports,而不是exports。
3.require
require是node支持的模块引入命令
网友评论