分享更有价值
被信任是一种快乐

es6与commonjs有哪些区别

文章页正文上

本篇内容介绍了“es6与commonjs有哪些区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 区别:1、CommonJS输出的是一个值的拷贝,ES6输出的是值的引用;2、CommonJS是运行时加载,ES6是编译时输出接口;3、CommonJS的require是同步加载模块,ES6的import是异步加载,有独立模块依赖的解析阶段。本教程操作环境:windows10系统、ECMAScript 6.0版、Dell G3电脑。一、CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用commonjs的用法,我们一起来看一下1.首先创建一个lib.js的文件2.再次创建一个main.js,使用commonjs的方式导入lib.js模块加载以后,它的内部变化就影响不到输出的lib.counter了。这是因为mod.counter是一个原始类型的值,会被缓存;esmodule的用法,我们一起来看一下ES6 模块不会缓存运行结果,而是动态地去被加载的模块取值,并且变量总是绑定其所在的模块。补充:通过esmodule导入的变量是不能重新赋值修改的。二、Co免费云主机、域名mmonJS 模块是运行时加载,ES6 模块是编译时输出接口上面代码的实质是整体加载fs模块(即加载fs的所有方法),生成一个对象(_fs),然后再从这个对象上面读取 3 个方法。这种加载称为“运行时加载”,因为只有运行时才能得到这个对象,导致完全没办法在编译时做“静态优化”。因此commonjs属于再运行时才会加载模块的方式。上面代码的实质是从fs模块加载 3 个方法,其他方法不加载。这种加载称为“编译时加载”或者静态加载,即 ES6 可以在编译时就完成模块加载,效率要比 CommonJS 模块的加载方式高;三、CommonJS 模块的require()是同步加载模块,ES6 模块的import命令是异步加载,有一个独立的模块依赖的解析阶段同步加载:所谓同步加载就是加载资源或者模块的过程会阻塞后续代码的执行;异步加载:不会阻塞后续代码的执行;我们来看一个案例,创建如下的目录;执行命令 node index.js我们会发现,require的内容会阻塞后续代码的执行。因为c.js先打印出来,然后在是index.js的打印,所以说require()是同步加载的;可以看的出来:import()是异步加载资源的,因为c.js是在index.js的后面打印出来的,并不会阻塞后续代码的执行;总结:以上便是commonjs和esmodule的几个区别1: CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用2: CommonJS 模块是运行时加载,ES6 模块是编译时输出接口3: CommonJS 模块的require()是同步加载模块,ES6 模块的import命令是异步加载,有一个独立的模块依赖的解析阶段“es6与commonjs有哪些区别”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注云技术网站,小编将为大家输出更多高质量的实用文章!

相关推荐: css2.1的发布时间是什么时候

今天小编给大家分享一下css2.1的发布时间是什么时候的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 css2.1是2004年2月正式发布的;c…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册