Node.js 讲解
再谈客户端JavaScript
有如下几个问题:
ü 什么是JavaScript?
ü JavaScript的运行环境是?
ü 浏览器中的JavaScript 可以做什么?
ü 浏览器中的JavaScript 不可以做什么?
ü JavaScript只可以运行在浏览器中吗?
ü 编程语言的能力取决于什么?
(1).什么是JavaScript?
Javascript是一门运行在浏览器端的脚本语言。
两大方面:
ü 在浏览器端运行的(还有在服务端运行的,比如php)
ü 脚本语言,嵌入到其他的语言中(插入到html中)
(2).JavaScript的运行环境是?
就是浏览器。
(3).浏览器中的JavaScript 可以做什么?
在浏览器端,主要是使用js来实现DOM操作。
ü 表单验证
ü 实现一些特性和动画
ü 更好的组织页面的结构(tab选项卡、轮播图)
ü 可以使用ajax来提升用户体验
ü 页游
(4).浏览器中的JavaScript 不可以做什么?
作为一门编程语言,js和其他语言相比,它不能干什么?
其他语言,比如c、c++、c#、java、php等
js不能:
ü 文件操作
ü 网络编程
ü os相关操作
ü 数据库操作
ü …
所以,我们发现,作为一门编程,居然有很多事情都不能做?
所以,这正是过去js被人鄙视的原因。认为就是js是一门玩具式的语言。
(5).JavaScript只可以运行在浏览器中吗?
在09年以前,基本上只能在浏览器中运行的。
但是09年之后,情况发生了变化。
Javascript除了在浏览器中运行,它还可以在其他环境运行,比如服务端。
(6).编程语言的能力取决于什么?
其实,各门语言的功能大同小异,基本都具备下面这些内容:
ü 变量和常量
ü 数据类型
ü 表达式
ü 语句(顺序、分支、循环)
ü 函数
ü 类和对象
ü 继承
编程语言的能力取决于它所运行的环境(平台)。
舞台有多大,人的潜力就有多大。
不同的语言,有不同的运行环境。
Java最强,因为有虚拟机,就可以在任何操行系统上执行。
C#,它只能运行在windows操作系统的.net环境中。
C,可以在任何os中运行。
Js也不例外,过去之所以弱,就是由于它的运行环境很单一,只是浏览器。
但是现在不一样了,在服务端环境中也可以执行的。
自此,js是大放异彩。
如果说有一门语言,会统治服务端开发、浏览器端开发、app开发,这门语言一定是js。
什么是Node.js
中文网站:http://nodejs.cn/
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的包管理器 npm,是全球最大的开源库生态系统。
node.js是一个运行环境,和浏览器是同等地位。node.js这个运行环境是基于chrome v8引擎的,在浏览器端写的那些和浏览器环境无关的代码,在node.js中,也是同样支持的。
JavaScript 和 node.js 区别
过去js有两个名称:
- ECMAScript版本号 (官方)
- Javascript(民间)
ECMAScript才是语言本身。
ECMAScript语言在不同的环境中,分别对应于不同的叫法:
- 在浏览器端执行的ECMAScript,称之为javascript
- 在服务端执行的ECMAScript,称之为node.js
- 在flash palyer中执行的ECMAScript,称之为ActionScript
以后,一般说js,就是指浏览器端的javascript(ecmascript)
一般说node.js,就是指服务端的javascript(ecmascript),但是node.js本身是运行环境。
小结:
Node.js是一个基于chrome v8引擎的运行环境。在运行环境中,可以执行js代码,同时结合这个环境提供的api,就可以实现服务端的编程。
和浏览器端的js对比。
浏览器端是一个运行环境,在这个运行环境中,可以执行js代码,同时结合这个环境提供的api(就是BOM和DOM),就可以实现DOM操作。
Node.js可以做什么?
使用Node.js可以轻松的进行服务器端应用开发。
具体来说,体现在两个方面:
webapp(网站)
命令行(包括命令行工具和交互式终端程序)
既然已经有了java、PHP等后台语言,为何还需要Node.js?
io密集型 — 异步io操作
实时web应用 ---- socket.io
io是指input/output,输入和输出,文件操作。
实时web应用:双十一、12306、游戏、在线客服/咨询
关键词:
非阻塞:https://www.jianshu.com/p/22c27f827304