文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

快速了解JavaScript的模块

2024-12-02 16:26

关注

随着现代 JavaScript 开发 Web 应用变得复杂,命名冲突和依赖关系也变得难以处理,因此需要模块化。而引入模块化,可以避免命名冲突、方便依赖关系管理、提高了代码的复用性和和维护性,因此,在 JavaScript 没有模块功能的前提下,只能通过第三方规范实现模块化:

它们都是基于 JavaScript 的语法和词法特性 “伪造” 出类似模块的行为。而 TC-39 在 ECMAScript 2015 中加入了模块规范,简化了上面介绍的模块加载器,原生意味着可以取代上述的规范,成为浏览器和服务器通用的模块解决方案,比使用库更有效率。而 ES6 的模块化的设计目标:

ECMAScript 在 2015 年开始支持模块标准,此后逐渐发展,现已经得到了所有主流浏览器的支持。ECMAScript 2015 版本也被称为 ECMAScript 6。

模块

ES6 模块借用了 CommonJS 和 AMD 的很多优秀特性,如下所示:

ES6 模块系统也增加了一些新行为。

浏览器运行时在知道应该把某个文件当成模块时,会有条件地按照上述 ES6 模块行为来施加限制。与  

  • "module" src="./module1.js"
  •  

     

     

  • // 支持模块的浏览器不会执行这段脚本 
  • // 不支持模块的浏览器会执行这段脚本 
  • "script.js"
  • 总结

    ES6 在语言层面上支持了模块,结束了 CommonJS 和 AMD 这两个模块加载器的长期分裂状况,重新定义了模块功能,集两个规范于一身,并通过简单的语法声明来暴露。

    模块的使用不同方式加载 .js 文件,它与脚本有很大的不同:

    1. 模块始终使用 use strict 执行严格模式。
    2. 在模块的顶级作用域创建的变量,不会被自动添加到共享的全局作用域,它们只会在模块顶级作用域的内部存在。
    3. 模块顶级作用域的 this 值为 undefined。
    4. 模块不允许在代码中使用 HTML 风格的注释。
    5. 对于需要让模块外部代码访问的内容,模块必须导出它们。
    6. 允许模块从其他模块导入绑定。
    7. 模块代码执行一次。导出仅创建一次,然后会在导入之间共享。

     

    浏览器对原生模块的支持越来越好,但也提供了稳健的工具以实现从不支持到支持 ES6 模块的过渡。

     

    来源:今日头条内容投诉

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    软考中级精品资料免费领

    • 历年真题答案解析
    • 备考技巧名师总结
    • 高频考点精准押题
    • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

      难度     813人已做
      查看
    • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

      难度     354人已做
      查看
    • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

      难度     318人已做
      查看
    • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

      难度     435人已做
      查看
    • 2024年上半年系统架构设计师考试综合知识真题

      难度     224人已做
      查看

    相关文章

    发现更多好内容

    猜你喜欢

    AI推送时光机
    位置:首页-资讯-后端开发
    咦!没有更多了?去看看其它编程学习网 内容吧
    首页课程
    资料下载
    问答资讯