1. 相关概念
-
什么是JavaScript
- 一种遵守ECMAScript标准的脚本语言
- 最初只能运行在浏览器端
-
浏览器中的 JavaScript 可以做什么?
- 操作DOM:表单验证、动画
- 数据交互:ajax
- 通常所指的 JavaScript :BOM + DOM (W3C)+ ECMAScript
-
JavaScript 只可以运行在浏览器中吗?
- JavaScript 不仅仅能运行在浏览器中
-
JavaScript 还可以运行在服务器环境中,例如:node
-
JavaScript引擎
浏览器 | JavaScript引擎 |
---|---|
Firefox | SpiderMonkey |
IE | Chakra |
Safari | JavaScriptCore |
Chrome | V8 |
-
客户端和服务器
面向用户的一端就是客户端
从数据角度来说:客户端只负责界面交互,主动的发起 HTTP 请求,请求后台服务器,把数据渲染到界面。
服务器提供的 HTTP 服务,接收 客户端的 HTTP 请求,然后处理 HTTP 请求, 最后把要发送给客户端的响应数据通过网络发送给客户端。
2. 为什么要学习Nodejs
-
什么是 Node.js
Node.js 是一种建立在Google Chrome's V8 引擎上的non-blocking(非阻塞),event-driven(基于事件的)I/O平台 Node.js平台使用的开发语言是JavaScript,平台提供了操作系统底层的API,方便做服务器端编程, 具体包括:文件操作、进程操作、通信操作等系统模块,支持模块化的开发
- Node.js官网:https://nodejs.org
- Node.js 是一个构建与 Chrome 的 V8 JavaScript 引擎之上的一个 JavaScript 运行时环境
- Node 可以用来解析和执行 JavaScript 代码(因为Node基于V8引擎)
- Node 无法解析 DOM 和 BOM 等对象
- Node 只关心数据部分,例如 读写文件,提供 Web 服务
-
Node 是 JavaScript 吗?
Node 不是一种新的语言 Node 是一个可以用来解析和执行 JavaScript 语言的一个环境或者说是一个平台 Node 环境或者说平台 给 JavaScript 语言,提高了 一些 例如文件操作、网络操作等接口API
-
Node.js 的包管理系统 npm 是世界上最大的开源库生态系统
-
Node 的诞生历程
- Node 的作者:Ryan Dahl
- 2004年还在纽约读数学系博士
- 2006年退学(世界那么大,我想去看看),生活所迫,选择了码农
- 接项目、工作、旅行,两年之后,成为了高性能Web服务器的专家
- 2009年5月,Ryan Dahl 在 github 上发布了最初的 Node 版本
- 2010年底,Ryan Dahl 加入 Joyent 公司全职负责 Node 的发展
- 2011年7月,Node 在微软的支持下发布了 Windows 版
- 2012年1月底,Ryan Dahl 将掌门人身份转交给了 Isaac Z.Schlueter,自己转向一些研究项目
- 2014年12月,多位重量级Node开发者不满 Joyent 对 Node 的管理,自立门户创建了
io.js
- 2015年9月,Node 与 io.js 合并,Node 的版本从 0.12.7 直接升级到了 4.0.0
- 合并后的 io.js 和 Node 在 Joyent 公司的维护下并行了两个版本:
- 一个是4.x.x 还是原来的 Node,这个版本是稳定版
- 一个是5.x.x,目前已经更新到了 6.6.0,其实就是 io,最新特性版,不建议生产环境使用
- Node的特点
- 事件驱动
- 异步IO模型
- 跨平台
- 为什么要学习 Node
- Node 打破了过去 JavaScript 只能在浏览器中运行的局面
- 前后端编程环境统一,大大降低了前后端语言切换的代价
- 全栈开发工程师
- 后端开发工程师
- 前端开发工程师
- 移动端开发工程师
- 使用 Node 可以做什么
- 高性能的网站服务器
- 简单易用的命名行应用程序
- i5ting、gulp、less
- 实时多人游戏后台服务器
- 高大上的桌面应用程序
- 使用 Web 技术 作为解决方案
- 底层的物联网开发
- 移动开发
- Ionic --> 安卓 IOS
- 使用 Web 技术作为解决方案
3. 安装Node.js
- 两种安装方式
- 直接下载Nodejs的安装包
- 使用NVM安装,可以切换Nodejs的版本
- NVM安装不同版本的Node
nvm install 6.5.0 - 查看现在可用的Node版本 nvm list
- 切换Node版本 nvm use 6.6.0 32/64
- NVM安装不同版本的Node
-
查看Node是否安装成功/查看Node的当前版本 node -v
-
切换源 国内 https://registry.npm.taobao.org 国外 http://registry.npmjs.org/
切换 npm config set registry https://registry.npm.taobao.org 配置后可通过下面方式来验证是否成功 npm config get registry
4. 学习Node.js的网站
- 官网 https://nodejs.org
- Node.js开源包管理网站 https://www.npmjs.com
- 开源代码托管 https://github.com
- 问答社区 http://stackoverflow.com