雪花臺灣

node.js和前端js有什麼區別,需要重新學習嗎?


本人是前端開發工程師,偶爾也做後端(Node.js),來回答一下這個問題。


關於Node.js

Node.js是一個開源、跨平臺的JavaScript運行環境,用於在伺服器端執行JavaScript代碼。

一直以來,JavaScript主要用於客戶端web頁面的腳本編程,由用戶瀏覽器的JavaScript引擎來執行。而Node.js則使得JavaScript可以被用於伺服器端腳本編程,用於在伺服器端生成動態的web內容。

Node.js的主要特徵是使用事件驅動的非阻塞IO模型,輕量而高效。

藉助Node.js,前端開發人員可以使用自己熟悉的編程語言(JavaScript)來完成後端開發,走向全棧開發(fullstack)。

關於Chrome V8

V8是由谷歌(Google)於2008年為其Chrome瀏覽器打造的開源JavaScript執行引擎。Node.js正是基於V8來構建的,性能卓越,且對最新的ES6語法提供非常完善的支持。因為使用與前端瀏覽器相同的JavaScript執行引擎,使得JavaScript前後端語法幾乎完全一致(雖然因為兼容性問題,前端的ES6代碼往往會經由Babel編譯為ES5再發送到前端執行)。

後端開發與前端開發的差異

可以肯定的是,Node.js使得前端工程師轉向後端的門檻大大降低,反正亦然,從而造就全棧開發的潮流,但是後端開發所使用的技術,以及面臨的主要挑戰是有很大不同的。

結論

綜上所述,掌握了前端JS語法只是使用Node.js的前提條件。Node.js提供的框架(網路、系統調用、文件系統、進程、加密、HTTP/2等等)以及其生態系統(Express、KOA、Sequelize等等)纔是需要花費更多時間和精力去學習的東西。


推薦閱讀:
相關文章