JS模块规范

ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口。node的module遵循CommonJS规范,requirejs遵循AMD,seajs遵循CMD,虽各有不同,但总之还是希望保持较为统一的代码风格。
ES6发布的module并没有直接采用CommonJS,甚至连require都没有采用,也就是说require仍然只是node的一个私有的全局方法,module.exports也只是node私有的一个全局变量属性,跟标准半毛钱关系都没有。require是运行时的,import它是编译时的,它必须放在文件开头,而且使用格式也是确定的。 
在JavaScript ES6中,export default 和 export 区别:
1.export与export default均可用于导出常量、函数、文件、模块等 
2.你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用 
3.在一个文件或模块中,export、import可以有多个,export default仅有一个 
4.通过export方式导出,在导入时要加{ },export default则不需要 
1、
//demo1.js
export const str = 'hello world'

export function f(a){
    return a+1
}

对应的导入方式:

//demo2.js
import { str, f } from 'demo1' //也可以分开写两次,导入的时候带花括号

import 需要知道demo.js所暴露的变量标识,否则无法加载

2、

//demo1.js
export default const str = 'hello world'

对应的导入方式:

//demo2.js
import str from 'demo1' //导入的时候没有花括号

使用export default命令,为模块指定默认输出,这样就不需要知道所要加载模块的变量名

 

 

 

 

 

 

 

 

 

 

 

posted @ 2017-09-05 22:31  圣耀  阅读(637)  评论(0编辑  收藏  举报