require与import区别

来源:互联网 发布:迅捷路由器的访客网络 编辑:程序博客网 时间:2024/06/05 06:00

原文:http://es6.ruanyifeng.com/#docs/module-loader

-CommonJS模块输出的是一个值的拷贝,ES6模块输出的是值的引用。

-CommonJS模块是运行时加载,ES6模块是编译时输出接口(ES6可以在编译时就完成模块加载,效率要比CommonJS模块的加载方式高)

1. CommonJS模块输出的是值的拷贝,也就是说,一旦输出一个值,模块内部的变化就影响不到这个值。而Es6模块的运行机制与CommonJS不一样。JS引擎对脚本静态分析的时候,遇到模块加载命令import,就会生成一个只读引用。等到脚本真正执行时,在根据引用到被加载的那个模块里面去取值。ES6模块是动态引用,并且不会缓存值,模块里面的变量绑定其所在的模块。

2. ES6模块不会缓存运行结果,而是动态的去被加载的模块取值,并且变量总是绑定其所在的模块。

3. ES6模块应该是通用的,同一个模块不用修改,就可以用在浏览器

require/exports是CommonJS在Node中实现的,import/export是ES6的模块。对Es6只要使用babel就可以了

ES6模块的设计思想,是尽量静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。

export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 美图m8手机很卡怎么办 美图手机太卡怎么办 美图m6特别卡怎么办 美图手机很卡怎么办? 手机反应太慢了怎么办 美图m6s照相模糊怎么办 美图m4反应迟钝怎么办 美图手机超级卡怎么办 美图t8反应慢怎么办 天虹购物卡丢了怎么办 qq让永久冻结了怎么办 qq被永久封了怎么办 qq号被永久封了怎么办 手机掉了微信怎么办 京东当天没到怎么办 北京华联会员卡怎么办 イズミヤ怎么办会员卡 哆点密码忘了怎么办 京东密码忘记了怎么办 6s手机充电不进怎么办 微信商城不退款怎么办 微店退款不退货怎么办 尚赫新会员怎么办拿货 小蓝单车不退款怎么办 京东白条被骗了,怎么办 花呗付款被骗了怎么办 派派不能提现怎么办 红米1s内存不足怎么办 红米手机中毒了怎么办 红米1s更新失败怎么办 红米2a死机了怎么办 红米4a信号差怎么办 红米hm2a无服务怎么办 红米1s内存不够怎么办 红米2a内存不足怎么办 红米3s按键失灵怎么办 红米2a开不机该怎么办 红米1s无法开机怎么办 红米4x玩游戏卡怎么办 红米1s玩游戏卡怎么办 红米3s手机卡屏怎么办