[ECMAScript] 谈谈你对es6的module体系的理解
es5的模块规范出来之前,前端也实现了比如AMD CMD模块规范,对前端模块进行管理。
es6的模块规范在语言层面实现了模块功能
为什么需要模块化,没有模块化之前,开发者如果想封装代码,需要创建多个文件,并将这些文件作为单独脚本
项目复杂度大的话,链接的文件就多。而且还存在污染全局命名空间的问题,因为这些js脚本中的变量都挂载到全局window对象上,可能产生覆盖,而且你也不知道你用的xx变量是在哪个文件定义的。
要想办法将变量放在函数作用域中,实现私有化
而且,你还必须按顺序依次加载script,才能确保变量可用
也就是说,多文件方案问题很多,es2015就开始支持js模块了
一个模块是一段可以为其他模块提供函数功能的代码块,简单来说就是一个文件,同时它自己可以依赖别的模块里的功能。
这样允许了开发者复用代码,提供了稳定一致的接口,还不会污染全局命名空间,不会向全局对象添加任何内容,而且处于严格模式,多次引入同一模块无效,只会执行一次。
个人简介
我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)