1. 程式人生 > 其它 >node與js的關係

node與js的關係

Node.js 是一個基於 Chrome V8 引擎的 JavaScript 執行環境,是一個讓 JavaScript 執行在服務端的開發平臺,它讓 JavaScript 成為與PHP、Python、Perl、Ruby 等服務端語言平起平坐的指令碼語言。

JavaScript一種直譯式指令碼語言,是一種動態型別、弱型別、基於原型的語言。js(JavaScript)是一種高階的、解釋型的程式語言;它是一門基於原型、函式先行的語言,是一門多正規化的語言,它支援面向物件程式設計,指令式程式設計,以及函數語言程式設計。

傳統的js是執行在瀏覽器上的,因為瀏覽器核心分為兩個部分:

  • 渲染引擎---渲染HTML和CSS
  • JavaScript 引擎---負責執行 JavaScript

如果要執行JavaScript程式碼,需要一個js引擎,你可以安裝一個瀏覽器(內建js引擎),或nodejs環境(內建js引擎),如果你在js程式碼中呼叫了瀏覽器提供的API,則必須安裝一個瀏覽器,若呼叫了nodejs API,則必須安裝nodejs環境,然後以各自規定的方式載入、執行JavaScript程式碼。

node.js與js的區別:

1、node.js是平臺,Js是程式語言;

2、js是客戶端程式語言,需要瀏覽器的JavaScript直譯器進行解釋執行;

3、node.js是一個基於Chrome JavaScript執行時建立的平臺,它是對Google V8引擎進行了封裝的執行環境;

4、node.js就是把瀏覽器的直譯器封裝起來作為伺服器執行平臺,用類似JavaScript的結構語法進行程式設計,在node.js上執行。

5、node.js與js組成不同

JavaScript:

  • ECMAScript(語言基礎,如:語法、資料型別結構以及一些內建物件)

  • DOM(一些操作頁面元素的方法)

  • BOM(一些操作瀏覽器的方法)

Node.js:

  • ECMAScript(語言基礎,如:語法、資料型別結構以及一些內建物件)

  • OS(作業系統)

  • file(檔案系統)

  • net(網路系統)

  • database(資料庫)

6、頂層物件不同

在JS中的頂層物件是window物件,但是在node中沒有什麼window物件,node中的頂層物件是global物件。這就是二者的差異性。

在window物件中,定義一個全域性變數是可以通過Window來訪問的,但是在node中是不能通過global物件來訪問的

優缺點:

1.原生js執行檔案依賴於瀏覽器;

2.nodejs執行檔案的時候服務為終端;

3.原生js有相容性問題,nodejs不存在相容性問題;

4.nodejs可以進行本地的讀寫,伺服器搭建,連線資料庫等,而原生js無法做到。

(1)使用node開發還可以使用node自有配套的npm包管理工具:
npm是隨同NodeJS一起安裝的包管理工具,能解決NodeJS程式碼部署上的很多問題,常見的使用場景有以下幾種:
允許使用者從npm伺服器下載別人編寫的第三方包到本地使用。
允許使用者從npm伺服器下載並安裝別人編寫的命令列程式到本地使用。
允許使用者將自己編寫的包或命令列程式上傳到npm伺服器供別人使用。

Node.js 的使用包管理器 npm來管理所有模組的安裝、配置、刪除等操作,使用起來非常方便。

(2)node本身就是一個服務端的框架,對於一些簡單的專案,我們可以不需要後端配合,直接用node進行資料庫的增刪改查(但是我們一般不使用這個功能);
(3)nodejs是一個服務js平臺,有自身帶的npm(基於 Node.js的前端專案包管理工具),有第三方的grunt(基於 Node.js的前端專案構建工具即即腳手架)、有第三方的express(路由功能)等強大的程式碼與專案管理應用。還有自身帶的webpack(基於 Node.js的前端專案部署打包工具),v8(谷歌客戶端瀏覽器javascript引擎)等強大的功能。
npm(包管理工具)是基於 Node.js的前端專案包管理工具,是專案中對各種程式包的依賴管理,傳統的開發專案主要是後端,現在技術在更新,前端有了框架的開發模式管理,也需要用包管理工具的思想去管理,目的是簡化第三方程式包在專案中引用複雜化。前端的js包是全世界JavaScript 天才開發共享的各種程式碼模組,把這些程式碼模組都按照一個獨立的軟體功能統一在一個庫中,一個程式碼模組是一個程式包(package,即程式碼模組)。

詳述:

就前端來說nodejs具有劃時代的意義,

做前端的沒用過nodejs都不好意思說自己是前端,

做後端的沒聽過nodejs,

或者說不出nodejs和java的優缺點,也不是一個合格的後端。

nodejs不是一個js框架,千萬不要認為是類似jquery的框架,

nodejs是js執行時,執行環境,類比java中jvm,

java的開端是什麼,無疑是jvm,自從有了jvm,java才能吹牛說自己是“一次編寫處處執行”,

不管你是windows還是linux,只要安裝了對應版本的jvm都可以執行.class檔案。

同樣nodejs的作用和jvm的一樣一樣的,也是js的執行環境,不管是你是什麼作業系統,

只要安裝對應版本的nodejs,那你就可以用js來開發後臺程式。

這具有劃時代的意義,意味著一直以來只能在瀏覽器上玩來玩去的js,可以做後端開發了,

從有了nodejs後就催生出一大批用js做後臺開發的前端人員,這部分人員就是偏前端的“全棧程式設計師”。

記住,nodejs是和jvm同等地位的js執行環境,打開了前端人員走向後端的道路。