node基礎面試事件環?微任務、宏任務?一篇帶你飛

培育能力的事必須繼續不斷地去作,又必須隨時改善學習方法,提升學習效率,纔會成功。 —— 葉聖陶javascript

1、咱們爲何要使用node,它的好處是什麼?

Node的首要目標是提供一種簡單的,用於建立高性能服務器的開發工具。還要解決web服務器高併發的用戶請求。java

解決高併發?

咱們這裏來舉個例子,咱們node和java相比,在一樣的請求下誰更佔優一點。看圖node

75e826f3f408baeaf32ec3ba1b1df3da304dcc93

當用戶請求量增高時,node相對於java有更好的處理併發性能,它能夠快速經過主線程綁定事件。java每次都要建立一個線程,雖然java如今有個線程池的概念,能夠控制線程的複用和數量。 異步i/o操做,node能夠更快的操做數據庫。java訪問數據庫會遇到一個並行的問題,須要添加一個鎖的概念。咱們這裏能夠打個比方,下課去飲水機接水喝,java是一會兒有喝多人去接水喝,須要等待,node是每次都只去一我的接水喝。 密集型CPU運算指的是邏輯處理運算、壓縮、解壓、加密、解密,node遇到CPU密集型運算時會阻塞主線程(單線程),致使其下面的時間沒法快速綁定,因此node不適用於大型密集型CPU運算案例,而java卻很適合。web

 

node在web端場景?

web端場景主要是用戶的請求或者讀取靜態資源什麼的,很適合node開發。應用場景主要有聊天服務器電子商務網站等等這些高併發的應用。數據庫

2、node是什麼?

Node.js是一個基於 Chrome V8 引擎的JavaScript運行環境(runtime),Node不是一門語言,是讓js運行在後端的運行時,而且不包括javascript全集,由於在服務端中不包含DOMBOM,Node也提供了一些新的模塊例如http,fs模塊等。Node.js 使用了事件驅動、非阻塞式 I/O的模型,使其輕量又高效而且Node.js 的包管理器 npm,是全球最大的開源庫生態系統。npm

總而言之,言而總之,它只是一個運行時,一個運行環境。後端

相關文章
相關標籤/搜索