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 指向当前模块

}

CommonJS与ES6、AMD、CMD比较的更多相关文章

  1. 前端模块化之CommonJS,ES6,AMD,CMD

    最近在搞跨平台解决方案,讨论关于模块划分的问题以及如何尽量多的复用逻辑代码.于是就有了此文章,之前的博客也写过,不过由于主机商跑路,宝贵的资源也就没了,说多了都是泪~ 这里按模块化发展的历史回溯的时间 ...

  2. CommonJs/ES6/AMD模块的用法以及区别

    github地址: 一直以来对CommonJs/AMD/CMD/ES6的文件模块加载一直懵懵懂懂.甚至有时会将CommonJs的exports和ES6的export.default搞混.趁着学习web ...

  3. JS模块之AMD, CMD, CommonJS、UMD和ES6模块

    CommonJS 传送门 同步加载,适合服务器开发,node实现了commonJS.module.exports和require 判断commonJS环境的方式是(参考jquery源码): if ( ...

  4. amd、cmd、CommonJS以及ES6模块化

    AMD.CMD.CommonJs.ES6的对比 他们都是用于在模块化定义中使用的,AMD.CMD.CommonJs是ES5中提供的模块化编程的方案,import/export是ES6中定义新增的 什么 ...

  5. AMD CMD commonJS es6

    看到很多人傻傻的分不清楚 AMD.CMD . commonJS . es6的区别,实际上这跟这几年前段技术的发展有很大的关系. 实际上这是JavaScript的模块化思想演进的一个过程. 最开始的时候 ...

  6. AMD,CMD.CommonJs和UMD还有es6的模块化对比

    CommonJS CommonJS是服务器端模块的规范,Node.js采用了这个规范. 根据CommonJS规范,一个单独的文件就是一个模块.加载模块使用require方法,该方法读取一个文件并执行, ...

  7. JS JavaScript模块化(ES Module/CommonJS/AMD/CMD)

    前言 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了, jQuery,Ajax,Node.Js,MVC,MVVM等的助力也使得 ...

  8. JavaScript模块化CommonJS/AMD/CMD/UMD/ES6Module的区别

    目录 JS-模块化进程 原始的开发方式 CommonJS && node.js AMD && Require.js CMD && Sea.js UMD ...

  9. js模块化编程之CommonJS和AMD/CMD

    js模块化编程commonjs.AMD/CMD与ES6模块规范 一.CommonJS commonjs的require是运行时同步加载,es6的import是静态分析,是在编译时而不是在代码运行时.C ...

  10. js模块化开发 AMD CMD Commonjs

    在es6全面实行开来之前  js实现模块开发方案有: 1.AMD 异步模块开发定义  依赖前置,requireJs应用了这一规范 require([module], callback); 加载完后回调 ...

随机推荐

  1. 「LuoguP3376」 【模板】网络最大流

    题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...

  2. [SDOI 2015] 星际战争

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3993 [算法] 首先发现问题具有单调性 , 不妨二分答案mid 考虑网络流 : 将源 ...

  3. java.lang.NoSuchMethodException: com.sun.proxy.$Proxy

    删掉了@Transactional注解,结果成功了 是这个注解造成的. 是ssh2的整合强制我们使用分层架构.

  4. js some和filter用法和区别

    some方法 array1.some(callbackfn[, thisArg]) 对数组array1中的每个元素调用回调函数callbackfn,当回调函数返回true或者遍历完所有数组后,some ...

  5. java-swingButton

    package com.http; import java.awt.*; import java.awt.event.*; import javax.swing.*; import com.http. ...

  6. 2-2和2-3基本数据类型 & 2-4基本数据类型详解 & 3-1和3-2整形字面量值及变量声

    2-4基本数据类型详解 3-1和3-2整形字面量值及变量声 023是八进制的 0x1357是十六进制 0X3C也是十六进制 0x1abL:长整型 变量声明 数据类型 空格 变量名 赋值: 变量的定义:

  7. PHP文件操作功能函数大全

    PHP文件操作功能函数大全 <?php /* 转换字节大小 */ function transByte($size){ $arr=array("B","KB&quo ...

  8. HDU - 4006 The kth great number multiset应用(找第k大值)

    The kth great number Xiao Ming and Xiao Bao are playing a simple Numbers game. In a round Xiao Ming ...

  9. HTML基本标签元素

    HTML:  超文本标记语言(HyperText   Mark-up  Language ) 1.作用:写网页结构  2.HTML不区分大小写,建议小写   3.文件后缀 .html  或者  .ht ...

  10. UICollctionView 刷新 item 刷新 消失

    在需要局部刷新的时候,可能出现的问题: 当时采用的局部刷新,第一次刷新没问题,当多次刷新的时候 item 就会消失 NSIndexSet *]; [collectionView reloadSecti ...