温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

es6 Module好处有哪些

发布时间:2021-11-12 14:13:56 来源:亿速云 阅读:266 作者:iii 栏目:开发技术

这篇文章主要介绍“es6 Module好处有哪些”,在日常操作中,相信很多人在es6 Module好处有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”es6 Module好处有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  CommonJS加载的是一个对象(module.export),该对象只有在脚本运行完成之后才会生成,ES6不是对象,它对外的接口是一种静态定义,在代码静态解析阶段就会生成。

  es6模块化module和CommonJS和AMD模块(运行时加载)的区别

  1、运行时加载

  //CommonJS模块

  let{stat,exists,readFile}=require('fs');

  //等同于

  let_fs=require('fs');

  letstat=_fs.stat;

  letexists=_fs.exists;

  letreadfile=_fs.readfile;

  上面代码的实质是整体加载fs模块(即加载fs的所有方法),生成一个对象(_fs),然后再从这个对象上面读取3个方法。这种加载称为“运行时加载”,因为只有运行时才能得到这个对象,导致完全没办法在编译时做“静态优化”。

  2、ES6可以在编译时就完成模块加载

  1

  2

  //ES6模块

  import{stat,exists,readFile}from'fs';

  上面代码的实质是从fs模块加载3个方法,其他方法不加载。这种加载称为“编译时加载”或者静态加载,即ES6可以在编译时就完成模块加载,效率要比CommonJS模块的加载方式高。当然,这也导致了没法引用ES6模块本身,因为它不是对象。

  ES6模块module的好处

  1、由于ES6模块是编译时加载,使得静态分析成为可能。有了它,就能进一步拓宽JavaScript的语法,比如引入宏(macro)和类型检验(typesystem)这些只能靠静态分析实现的功能。

  2、不再需要UMD模块格式了,将来服务器和浏览器都会支持ES6模块格式。目前,通过各种工具库,其实已经做到了这一点。

  3、将来浏览器的新API就能用模块格式提供,不再必须做成全局变量或者navigator对象的属性。

  4、不再需要对象作为命名空间(比如Math对象),未来这些功能可以通过模块提供

到此,关于“es6 Module好处有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI