这篇文章主要介绍“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好处有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。