JavaScript是一个强大面向对象语言,它有很多快速高效的解释器。官方JavaScript标准定义的API是为了构建基于浏览器的应用程序。然而,并没有定于一个用于更广泛的应用程序的标准库。

CommonJS API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白。它的终极目标是提供一个类似Python,Ruby和Java标准库。这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同的主机环境中。在兼容CommonJS的系统中,你可以实用JavaScript程序开发:

服务器端JavaScript应用程序

命令行工具

图形界面应用程序

混合应用程序(如,Titanium或Adobe AIR)

NodeJS和CommonJS之间的关系

CommonJS是一种规范,NodeJS是这种规范的实现。CommonJS是一 个不断发展的规范,计划将要包括如下部分:

Modules

Binary strings and buffers

Charset encodings

Binary, buffered, and textual input and output (io) streams

System process arguments, environment, and streams

File system interface

Socket streams

Unit test assertions, running, and reporting

Web server gateway interface, JSGI

Local and remote packages and package management

具体每个子规范的定制进度请查看官方网站的说明:http://commonjs.org/specs/

CommonJS有很多实现,其中不乏很多大名鼎鼎的项目,比如 说:Apache的CouchDB和node.js等。但这些项目大 部分只实现了CommonJS的部分规范。具体的项目和实现部分参见官方网站的说明:http://commonjs.org/impl/

千万别小看作为后台应用的JavaScript,Palm的WebOS的开发计划中就曾提到CommonJS和其扩展的JS API,另外几乎所有的平台(包括智能手机平台和计算机平台都开始流程)都开始引入Web技术:比如说S60中的WRT,IPhone中的 WebWidget,Android平台上的WebWidget,还有Firefox直接用XML和CSS作界面用Javascript控制逻辑,甚至 Google的ChromeOS直接就是一个浏览器操作系统。  我做个技术上的赌注:动态语言和静态语言混合编程将会很流行(比如Android和PalmWebOS同时引入两种SDK,QT直至 QTScript)。

转载于:https://www.cnblogs.com/leigood/p/5766660.html

夺命雷公狗---node.js---3commonJs 与 nodeJs的简介相关推荐

  1. 夺命雷公狗---node.js---2node.js中的npm的常用命令

    npm install <name> 安装nodejs的依赖包 例如npm install express 就会默认安装express的最新版本,也可以通过在后面加版本号的方式安装指定版本 ...

  2. 夺命雷公狗---node下的一聊天室-首发

    今晚感觉挺蛋疼,就用了点时间,在node下开发了个聊天室来玩玩,不过之是简单的开发了套而已,并没多做什么考虑,, 但是发现了一个好处就是用node来写聊天室代码居然少得可怜,这个不佩服node都不行, ...

  3. 夺命雷公狗---node.js---20之项目的构建在node+express+mongo的博客项目5mongodb在项目中实现添加数据...

    我们上一步就引入了mongodb了,那么下一步就要开始写添加数据了,不过有个前提是先将表单的数据处理好: 最基本的这部现在已经成功了,因为最基本的这步就是先将表单处的提交方式和提交地址给处理好,这里和 ...

  4. 夺命雷公狗---node.js---21之项目的构建在node+express+mongo的博客项目6之数据的遍历...

    首先还是来链接数据库,然后就查找,如下所示: /*** Created by leigood on 2016/8/31.*/var express = require('express'); var ...

  5. 夺命雷公狗---node.js---13之Buffer的转换

    其实Buffer也是一种数据结构的东西,但实际中用得并不多,我们只需要知道常用的转换方法即可: /*** Created by leigood on 2016/8/30.*/ var str = 'e ...

  6. 夺命雷公狗-----React---5--props对象的传递

    提示:props的值是不可以改变的... <!DOCTYPE html> <html lang="en"> <head><meta cha ...

  7. 夺命雷公狗TP3.2.3商城2-----后台模版引入和后台控制器的创建

    首先我们来到D:\phpStudy\WWW\shop\WEB  目录下,将Home目录进行复制一份,并且改名为Admin,如下所示: 然后将我们准备好的后台首页模版放入   D:\phpStudy\W ...

  8. 夺命雷公狗ThinkPHP项目之----商城10商品属性管理

    我们一般做项目前就要分析业务逻辑先,这次也不例外. attr_type:是指属性的类型,有唯一,单选和多选之分 唯一属性,是指用户在购买商品时,可以看到的扩展属性如下图所示: 单选属性,是指用户在购买 ...

  9. 夺命雷公狗---微信开发26----客服消息接口基础和推送视频

    我们按照上一课的套路继续改写下index.php即可实现,代码如下所示: <?php /*** wechat php test*///define your token require_once ...

最新文章

  1. 深入理解 JavaScript 中的 replace 方法
  2. OCS Inventory NG使用之在windows 2008 R2平台下安装服务器端(三)
  3. 3w最简单led灯电路图_12v延时关闭电路图大全
  4. 【Android 安装包优化】资源混淆 ( AAPT2 资源编译工具 | resources.arsc 资源映射表 工作机制 )
  5. python不带颜色的图形_如何使用Matplotlib设置图形背景颜色的不透明度 - python
  6. 港湾命令行 配管理IP
  7. 四维空间引发-维度空间(0-10)来自我的教授的班长
  8. java 开发环境的搭建
  9. Linux下安装Redis(三分钟搞定)
  10. python网络编程基础语法_python网络编程
  11. PyTorch 模型训练教程(一)-数据
  12. 2022年最新《谷粒学院开发教程》:12 - 项目完结篇
  13. 第三章 违反假设条件的处理(模型的变换与GMM估计)
  14. linux操作 防火墙
  15. 软件测试有白和黑盒和灰盒,白盒测试、灰盒测试和黑盒测试的区别
  16. 微信小程序父子组件方法调用方法汇总
  17. Shell- 获取ESXI主机虚拟交换机中MAC表
  18. CdTe量子点修饰CLV3信号多肽/偶联穿膜肽/Angiopep-2多肽修饰Ag2S量子点的制备
  19. win2008r2hpc无盘服务器配置,机房无盘系统服务器配置
  20. office 2016打开很抱歉此功能看似已中断并需要修复

热门文章

  1. 仿苹果手机闹钟_你会用苹果手机吗?这些快捷指令快速设置一下,好用度提升10倍...
  2. CAXA电子图板2020中文版
  3. TCP/IP协议模型详解
  4. 基于OpenSSL自建CA和颁发SSL证书
  5. Linux监听进程是否存在,并加入定时任务
  6. java 消息机制 ActiveMQ入门实例
  7. 【神经网络与深度学习】【C/C++】比较OpenBLAS,Intel MKL和Eigen的矩阵相乘性能
  8. 【转】Kconfig,Makefile 和 .config
  9. Scrum敏捷开发沉思录
  10. [译] Facebook杯2013年编程挑战赛——第一轮题目及答案