ecmascript 6 模块的模块相比 CommonJS 的 有什么优点

&&国之画&&&& &&
版权所有 京ICP备号-2
迷上了代码!ECMAScript 6 模块简介
ECMAScript 6 模块简介
欢迎关注我们的:
InfoQ - 促进软件开发领域知识与创新的传播
482,381 十二月 独立访问用户
特别专题语言 & 开发
介绍为了满足业务需求而对携程无线系统的架构进行调整,着重介绍在Mobile 2.0下客户端H5/Hybrid/Native和服务端(H5 Service & Moblie Service)的架构调整和技术变迁,通过这些调整能否满足满足业务发展的需求并提高系统的稳定性。主要分享一下内容:
1. 前段App/H5的解耦以及Hybrid的引入和推广
2. 后端服务的解耦(H5/Hybrid服务以及针...
特别专题架构 & 设计
介绍为了满足业务需求而对携程无线系统的架构进行调整,着重介绍在Mobile 2.0下客户端H5/Hybrid/Native和服务端(H5 Service & Moblie Service)的架构调整和技术变迁,通过这些调整能否满足满足业务发展的需求并提高系统的稳定性。主要分享一下内容:
1. 前段App/H5的解耦以及Hybrid的引入和推广
2. 后端服务的解耦(H5/Hybrid服务以及针...
特别专题过程 & 实践
本期内容推荐:解读2014之云计算篇:有一种态度叫做“拥抱”(上);解读2014之iOS篇:拥抱变化;解读2014之Docker篇:才气、运气、勇气;SDN落地的实践与思考:带着问题找方案,别管定义啦;Swift编程语言;手机淘宝构架演化实践;手机QQ的移动化实践之路;物联网传输协议MQTT;从信息安全看未来物联网发展;赵海峰:大数据决定互联网金融未来。
特别专题运维 & 基础架构
本期内容推荐:解读2014之云计算篇:有一种态度叫做“拥抱”(上);解读2014之iOS篇:拥抱变化;解读2014之Docker篇:才气、运气、勇气;SDN落地的实践与思考:带着问题找方案,别管定义啦;Swift编程语言;手机淘宝构架演化实践;手机QQ的移动化实践之路;物联网传输协议MQTT;从信息安全看未来物联网发展;赵海峰:大数据决定互联网金融未来。
特别专题企业架构
本期内容推荐:解读2014之云计算篇:有一种态度叫做“拥抱”(上);解读2014之iOS篇:拥抱变化;解读2014之Docker篇:才气、运气、勇气;SDN落地的实践与思考:带着问题找方案,别管定义啦;Swift编程语言;手机淘宝构架演化实践;手机QQ的移动化实践之路;物联网传输协议MQTT;从信息安全看未来物联网发展;赵海峰:大数据决定互联网金融未来。
您目前处于:
ECMAScript 6 模块简介
ECMAScript 6 模块简介
任何平台的其中一个重要特性,除了需要支持代码库外就是模块。直到现在,Javascript还不支持原生的模块化。结果是,各种解决方案都将模块添加到类库中,比如(部分由实现)和。然而,作为下一代的Javascript(官方称为ECMAScript 6),模块终于被作为重要组成部分加入其中。Axel Rauschmayer写了一篇,解析了它们是什么以及如何使用,并且如果目前想使用的话采用的方法(使用转换编译器)。
Axel指出了ES6模块的设计目标如下:
ECMAScript 6 (ES6)模块的目标是创建的格式能让CJS()和AMD(异步模块定义)的用户都能满意。为此,它们的语法是CJS那样紧凑。在另一方面,它们的动态能力比不上CJS(例如,你不能用正常的语法去有条件加载模块)。这有两个主要的优点:
如果尝试导入未导出的将会得到编译时的错误可以很容易异步导入ES6的模块。
ES6的模块标准由两部分组成:
声明式语法(导入和导出用)。编程式API加载器:设置模块如何加载以及如何有条件地加载模块。
ES6模块不再需要开发人员去将整个JavaScript文件的尴尬地包装成一个对象或函数闭报,这和以前大多数异步模块装载器在浏览器中的做法一样。相反,可以在最顶层进行定义,而只有函数和显式定义的导出变量将可以暴露给模块的消费者:
var privateVar = "this is a variable private to the module";
export var publicVar = "and this one is public";
export function returnPrivateVar() {
return privateV
假设将上面的代码保存在mymodule.js中,我们现在可以用两种方法导入,或者是通过导入指定函数和变量,或者通过导入模块作为模块的对象:
import { returnPrivateVar, publicVar } from 'mymodule';
console.log(returnPrivateVar());
import 'mymodule' as
console.log(mm.returnPrivateVar());
新的模块标准也支持对模块的内嵌定义和动态模块加载。可以阅读也了解更多相关信息。
如果想在目前尝试新的模块语法,可以有一些方法可供选择:
将ES6模块编译为AMD规范或者CommonJS规范的模块 则能支持动态加载ES6风格的模块是一个require.js的插件能支持加载ES6模块是Google的转换编译器,目的在于支持许多Javascript的特性包括ES6模块是微软的可选择的Javascript的一个版本,也支持ES6模块
查看英文原文:
感谢对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至。也欢迎大家通过新浪微博()或者腾讯微博()关注我们,并与我们的编辑和其他读者朋友交流。
【QCon北京2015大会】把握趋势,邀请国内外顶级专家,设计涵盖大数据、云计算、移动开发、技术创业、前端和敏捷等热点领域的18个专题,IT领域的技术盛宴。。
相关厂商内容
相关赞助商
Windows Azure专区上线,全面了解云服务!
告诉我们您的想法
语言 & 开发架构 & 设计过程 & 实践运维 & 基础架构企业架构
InfoQ每周精要
通过个性化定制的新闻邮件、RSS Feeds和InfoQ业界邮件通知,保持您对感兴趣的社区内容的时刻关注。
定制您感兴趣的技术领域
语言 & 开发
架构 & 设计
过程 & 实践
运维 & 基础架构
这会影响您在主页和RSS订阅中看到的内容。点击“偏好设置”可选择更多精彩定制内容。
<及所有内容,版权所有 ?
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7
发表评论:
馆藏&21093
TA的最新馆藏}

我要回帖

更多关于 竹节桩与管桩相比优点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信