由于现在的网页可以看作是一个功能丰富的应用,需要对代码进行分割、作用域隔离、模块之间的依赖管理以及发布到生产环境时的自动化打包与处理等。
ES6模块(Module)
模块功能主要由两个命令构成:export
和import
。export
命令用于规定模块的对外接口,import
命令用于输入其他模块提供的功能。
export 与 import
1 | // test.js |
- export 不能直接 export 具体的数据或变量 ,变量声明语句或者{包裹的数据或变量}
- export输出的内容import时要对应名字,或者用as改变名字
export default 与 import
1 | // default.js |
- export default 只能使用一次,默认输出一个叫做default的变量或方法,所以import时可以取任意名字
- export default 后面不能跟变量声明语句,只能是变量名
其他的模块化方案
- CommonJS基于Node.js (require(), module.exports)
- AMD 由RequireJS提出的,CMD 由 SeaJS提出的,两种用法基本相似(define)