javaScript可以用来做什么
- 最初,js被用来在浏览器端实现表单的验证。
- 在浏览器端可以使用js操作dom实现各种各样的效果和动画。
- 浏览器端的js可以处理数据,实现各种页面功能。
- 可以使用JavaScript发出http请求,实现各种交互任务。
以上,是浏览器中js的功能。换句话说,就是JavaScript脱离了浏览器,上述功能也就不存在了。
当然,浏览器也会对JavaScript有一些限制,比如一些常见的文件操作,系统接口的调用,数据库连接等等这些功能都无法实现。
于是在2009年,Ryan正式推出了基于JavaScript语言和V8引擎的开源Web服务器项目,命名为Node.js。虽然名字很土,但是,Node第一次把JavaScript带入到后端服务器开发,加上世界上已经有无数的JavaScript开发人员,所以Node一下子就火了起来。
正是因为node的出现,我们的JavaScript才可以脱离浏览器去运行,当然也没有了浏览器的一些限制了。同样的,在浏览器的部分功能也就不存在了,比如:操作dom!
那么运行在node上的JavaScript可以做什么呢?
- 可以制作命令行工具(所谓命令行工具就是通过dos命令来操作的软件)
- 可以做服务端的开发 (基于node可以开发服务器应用,就像php一样)
nodejs是什么
Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js’ package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
中文网站:http://nodejs.cn/
nodejs是为JavaScript提供运行环境的一款软件(windows版本,linux版本,mac版本),它的功能就是去执行JavaScript程序。
- Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
- Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
- Node.js 的包管理器 npm,是全球最大的开源库生态系统。
记住一点:node.js其实一个运行环境,和浏览器是同等地位。 并且,node.js这个运行环境是基于chrome v8引擎的,说明在浏览器端写的那些和浏览器环境无关的代码,在node.js中,也是同样支持的。
有很多初学者认为:node.js是一门语言,这是极其错误的。
node.js和javascript到底是什么关系呢?
回顾js的历史:
94年,livescript
95年,javascript
后来交给了一个机构----ECMA,其实将js进行了标准化—ECMAScript规范
1999年-2009年叫 ECMAScript3.0
2009年-2015年叫 ECMAScript5.0
16年至今叫 ECMAScript 6
所以,过去js有两个名称:
ECMAScript版本号 (官方)
Javascript(民间)
以前,两种叫法没啥区别。都是在浏览器端来执行的脚本语言。 但是,随着node.js的出现,其实ECMAScript 和 javascript是有区别的, ECMAScript才是语言本身。
nodejs可以用来做什么?
使用Node.js可以轻松的进行服务器端应用开发,PHP、Python、Ruby能做的事情Node.js几乎都能做,而且在某些方面可以做的更好。
- 文件操作
- 网络编程
- os相关操作
- 数据库操作
世界上70%以上的网站都是使用php来做的。 世界上100%的网站都使用了js。
具体来说,体现在两个方面:
- webapp(网站)
- 命令行(包括命令行工具和交互式终端程序)
越来越多的网站,都开始大面积的使用node.js
阿里(天猫)
uber
Yahoo
Paypal
Group on
既然已经有了PHP等后台语言,为何还需要Node.js?
- io密集型 — 异步io操作
- 实时web应用 ---- socket.io
io是指input/output,输入和输出,文件操作。 实时web应用:双十一、12306、游戏、在线客服/咨询
nodejs的特点
- 单线程
- 异步式I/O
- 事件驱动机制
- 跨平台
其实,这些特点是js本身的,只不过在node.js中表现尤为突出。
Node.JS超越jQuery成为Github上第二受欢迎的开源项目 GitHub公布10大热门编程语言。