- Taipei, Taiwan
-
Node.js | Function(函數)
簡介 在 JavaScript 中,一個函數可以作為另一個函數的參數。我們可以先定義一個函數,然後傳遞,也可以在傳遞參數的地方直接定義函數。 Node.js 中函數的使用與 Javascript 類似,舉例來說,你可以這樣做: 1 2 3 4 5 6 ...
-
Node.js | Module System(模組系統)
簡介 為了讓 Node.js 的文件可以相互調用, Node.js 提供了一個簡單的模組系統。 模組是 Node.js 應用程序的基本組成部分,文件和模組是一一對應的。換言之,一個 Node.js 文件就是一個模組,這個文件可能是 JavaScript 程式、 JSON 或者編譯過的 C...
-
Node.js | Stream(流)
簡介 Stream 是一個抽象接口, Node 中有很多對象實現了這個接口。 例如:對 http 伺服器發起請求的 request 對象就是一個 Stream ,還有 stdout (標準輸出)。 Node.js Stream 有四種流類型: Readable :可讀操作...
-
Node.js | Buffer(緩衝區)
簡介 JavaScript 語言自身只有字符串資料類型,沒有二進制資料類型。 但在處理像 TCP 流或文件流時,必須使用到二進制資料。因此在 Node.js 中,定義了一個 Buffer 類,該類用來建立一個專門存放二進制資料的緩存區。 在 Node.js 中, Buffer 類是...
-
Node.js | EventEmitter(事件發射器)
EventEmitter 簡介 Node.js 所有的異步 I/O 操作在完成時都會發送一個事件到事件隊列。 Node.js 裡面的許多對像都會分發事件:一個 net.Server 對象會在每次有新連接時觸發一個事件,一個 fs.readStream 對象會在文件被打開的時候觸發一個...
-
Node.js | 深入理解事件循環機制(Node.js篇)
什麼是事件循環 首先我們需要了解一下最基礎的一些東西,比如這個事件循環,事件循環是指 Node.js 執行非阻塞 I/O 操作,儘管 JavaScript 是單線程的,但由於大多數內核都是多線程的, Node.js 會盡可能將操作裝載到系統內核。因此它們可以處理在後台執行的多個操作。當其中一...
-
Node.js | 深入理解事件循環機制(瀏覽器篇)
問題: 單線程如何做到異步? 事件循環的過程是怎樣的? macrotask 和 microtask 是什麼,它們有何區別? 單線程和異步 提到 js ,就會想到單線程、異步,那麼單線程是如何做到異步的呢? 概念先行,先要了解下單線程和異步之間的關係。 js ...
-
Node.js | Event Loop(事件循環)
簡介 Node.js 是單進程單線程應用程序,但是因為 V8 引擎提供的異步執行回調接口,通過這些接口可以處理大量的並發,所以性能非常高。 Node.js 幾乎每一個 API 都是支持回調函數的。 Node.js 基本上所有的事件機制都是用設計模式中觀察者模式實現。 Node.js ...
-
Node.js | Callback(回調函數概念)
簡介 回調是一個異步等效的功能。在完成特定任務回調函數被調用。 Node 大量使用了回調。 Node 的所有的 API 都支持回調這樣的一種方式。 例如:我們可以一邊讀取文件,一邊執行其他指令,在文件讀取完成後,我們將文件內容作為回調函數的參數返回。這樣在執行程式時就沒有阻塞或等待文件...
-
Node.js | REPL終端
簡介 REPL 表示讀取評估和示範印出循環( Read Eval Print Loop ),它代表一個指令輸入和系統在交互模式的輸出響應窗口控製台或 Unix/ Linux 的 shell 計算機環境。 Node.js 附帶了一個 REPL 環境,它執行以下期望的任務。 Rea...