多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 前言 大家都知道工程化重要的技术基础就有组件化和模块化,而es-moodule的推出对于原先众多的模块规范新的规则,让前端的模块规范变的统一可用。 **说明:那么本篇主要带大家学习es-module的基础知识,适合es6入门以及对模块化规则不是很熟悉的同学,具有一定基础的请绕过。** **建议阅读时间:15-25min.** ## 引入模块: import es module提供了多种引入模块的方式,其中最基本的就是import语句。为什么先将引入模块呢?因为大部分人可能是使用模块多一些,在定义模块的时候也需要先思考我的模块需要哪些外部依赖定义在模块开始。 ### 引入模块场景 - 定义自己的模块的外部依赖 - 开发业务功能的外部依赖 ### 引入类型 ## 模块主体 ### 主体环境 :严格模式 备注 :严格模式是es5提出的,这里不做详细说明,后面会写专门的文章介绍严格模式对代码造成的影响。 > 变量必须声明后再使用 > 函数的参数不能有同名属性,否则报错 > 不能使用with语句 > 不能对只读属性赋值,否则报错 > 不能使用前缀 0 表示八进制数,否则报错 > 不能删除不可删除的属性,否则报错 > 不能删除变量delete prop,会报错,只能删除属性delete global[prop] > eval不会在它的外层作用域引入变量 > eval和arguments不能被重新赋值 > arguments不会自动反映函数参数的变化 > 不能使用arguments.callee > 不能使用arguments.caller > 禁止this指向全局对象 > 不能使用fn.caller和fn.arguments获取函数调用的堆栈 > 增加了保留字(比如protected、static和interface) ### 主体内容 :常规变量以及方法、对象、类 无论你是定义的什么变量类型,模块内都建议使用局部作用域`let`声明,当然对于常量建议英文大写用`const`声明,拒绝使用`var`。 ## 暴露api :export ## 更多 **后续会补充编写相关文章:** - commonJs 、amd与es-module的区别以及简单使用 - 模块加载实践以及注意事项 - js模块与组件关系 - 如何使用好es-module - js严格模式 ## 参考文档 - 《实战es2015》小问著 - [阮一峰之es-module](http://es6.ruanyifeng.com/#docs/module)