CommonJS与ES6、AMD、CMD比较
Javascript,javascript是一种脚本编程语言,有自己独立的语法与语义,没有javascript,也就没有其他的那些概念了。
关于ES6,可直接理解为javascript的增强版(增加了新的规范、特性与功能)或最新版,两者之间虽然略有差异,但也可以忽略(不要在意这些细节,呵呵),就有点类似于JAVA8与JAVA语言的关系,同样既然有ES6,那么也还有ES 5与ES 3,都是Javascript在发展过程中的发布版本。
Commonjs、AMD以及曾经很火的CMD都只是为了解决javascript文件之间的依赖与引用问题,所以它们只是一种Javascript的包管理规范。在组织你的JS代码时,你完全可以根据自己的喜好,选择合适的包管理规范,但要注意,尽可能只选择一种。
在nodejs出现之前,javascript主要应用于浏览器端,所以nodejs也很好理解了,nodejs是对javascript脱离浏览器的应用延展,它还提供了运行引擎与相关API,所以nodejs是javascript开发本地应用、服务器应用的一个开发套件,注意了,因为nodejs采用了javascript的语法,所以nodejs不是一种开发语言。
作者:http://blog.csdn.net/yiifaa/article/details/54376458
es6 {
export : '可以输出多个,输出方式为 {}' ,
export default : ' 只能输出一个 ,可以与export 同时输出,但是不建议这么做',
解析阶段确定对外输出的接口,解析阶段生成接口,
模块不是对象,加载的不是对象,
可以单独加载其中的某个接口(方法),
静态分析,动态引用,输出的是值的引用,值改变,引用也改变,即原来模块中的值改变则该加载的值也改变,
this 指向undefined
}
commonJS {
module.exports = ... : '只能输出一个,且后面的会覆盖上面的' ,
exports. ... : ' 可以输出多个',
运行阶段确定接口,运行时才会加载模块,
模块是对象,加载的是该对象,
加载的是整个模块,即将所有的接口全部加载进来,
输出是值的拷贝,即原来模块中的值改变不会影响已经加载的该值,
this 指向当前模块
}
最新文章
- 谈谈StringBuffer和StringBuilder
- iOS开发之功能模块--高仿Boss直聘的IM界面交互功能
- 在Ubuntu下使用 csapp.h 和 csapp.c
- [Effective JavaScript 笔记]第66条:使用计数器来执行并行操作
- 微信公众号开发第六课 BAE结合实现迅雷账号随机分享
- ModelAndView解析
- 获取iOS应用的版本号和app名称
- POJ 2299 Ultra-QuickSort (求序列的逆序对数)
- MySQL Replicationation进阶
- Swift分割字符串
- 【原创】python实现视频内的face swap(换脸)
- H5 拖拽,一个函数搞定,直接指定对象设置可拖拽
- Win10系统Python虚拟环境安装
- 痞子衡嵌入式:备受开源社区推崇的分布式版本控制工具(Git)
- xml可视化编辑器
- SQL语句汇总——数据修改、数据查询
- centos下利用yum安装LAMP(Linux+Apache+MySQL+PHP)及配置
- systemd的程序自启动脚本编写
- SpringMVC由浅入深day01_4DispatcherSerlvet.properties
- vs2013下OpenGL环境的配置