es6 import export 与 node 中的module.exports exports
1.export
a.export 变量
export var name = 'jack';
export var age = 18;
//等同于
var name = 'jack';
var age = 18;
export {name,age};
a.export 方法
export function sayHello(){ console.log('hello world!'); } //等同于 function sayHello(){ console.log('hello world!'); } export {sayHello};
2.import
import 与 export 正好相反;
import {name,age} from './exportTest.js'; console.log(name); console.log(age); import {sayHello} from './exportTest.js'; sayHello();
3.default
默认导出的模块,每个js文件中只能有一个export default 。
正是因为export default
命令其实只是输出一个叫做default
的变量,所以它后面不能跟变量声明语句。
// 正确 export var a = 1; // 正确 var a = 1; export default a; // 错误 export default var a = 1;
export default 可以导出一个方法:
export default function test() { this.name = "jack"; };
由于export default,在import 的时候可以为其指定任意名字,因为default 本身是匿名的。
//正确 import test from './exportTest.js'; //正确 import myTest from './exportTest.js'; //正确 import hello from './exportTest.js';
4. module.exports 与 exports
module.exports ,exports 为node.js 的方法, module.exports 重要用于导出 function Parent(){} 这种构造函数,在require中可以直接new 该对象;
exports 主要为导出实例化对象。