[node介紹及學習](https://blog.csdn.net/swimming_in_IT_/article/details/78686098)
### 1. Node.js是什么
~~~
1. 不是一門語言
2. 不是庫,不是框架
3. Node.js是一個javaScript運行時環境
4. 簡單點來講就是Node.js可以解析和執行JavaScript代碼
5. 以前只有瀏覽器可以解析執行JavaScript代碼
6. 也就是說現在JavaScript可以完全脫離瀏覽器來運行
7. 提供一種JavaScript在服務器端運行時的環境
~~~
### 2. 瀏覽器中的JavaScript
- EcmaScript
- DOM
- BOM
### 3. Node.js中的JavaScript
- EcmaScript
- 沒有DOM和BOM
- 在Node這個JavaScript執行環境中為JavaScript提供了一些服務器級別的操作API
- 例如文件讀寫
- 網絡服務的構建
- 網絡通信
- http服務器
- 等處理。。。
### 4. 構建在Chrome的V8引擎之上
- 代碼只是具有特定格式的字符串而已
- 引擎可以認識它,引擎可以幫你去解析和執行
- Google Chrome的V8引擎是目前公認的解析執行JavaScript代碼最快的
- Node.js的作者把Google Chrome中的V8引擎移植了出來,開發了一個獨立的引擎
### 5. 特點
- 事件驅動
- 非阻塞IO模型(異步)
- 輕量和高效
- Node.js package ecosystem(npm)
- npm 是世界上最大的開源庫生態系統
- 絕大多數JavaScript相關的包都存放在npm上,這樣做的目的是為了讓開發人員更方便的去下載使用
### 6. Node.js能做什么
- Web服務器后臺
- 命令行工具
- npm(node)
- git(c語言)
- hexo(node)
...
- 對于前端開發工程師來說,接觸node最多的是它的命令行工具
自己寫的很少,主要是使用別人第三方的
- webpack
- gulp
- npm
### 7. Node.js中能學到啥
- B/S編程模型
- Browser-Server
- back-end
- 任何服務端技術這種BS編程模型都是一樣,和語言無關
- Node只是作為我們學習BS編程模型的一個工具而已
- 模塊化編程
- RequireJS
- SeaJS
- @import('文件路徑')
- 以前認知的JavaScript只能通過script標簽來加載
- 在Node中可以像@import一樣引用加載js腳本文件
- Node常用API
- 異步編程
- 回調函數
- Promise
- async
- generator
- Express Web開發框架
- EcmaScript 6