原创 面試:Function.prototype.a 請給出下列函數的執行輸出

問題 Function.prototype.a = () => { console.log(1); } Object.prototype.b = () => { console.log(2); } function A() {} c

原创 Maximum call stack size exceeded 棧溢出的解釋

問題 工作過程中我們時常會碰到棧溢出的問題,而這經常是由死循環引起的,見下面的代碼。 function foo() { foo() } foo() VM398:1 Uncaught RangeError: Maximum call

原创 Tree-shaking 文檔例子編譯後結果和實際不同?

根據webpack 官方 v.4.43.0 的說法是 tree shaking 是一個術語,通常用於描述移除 JavaScript 上下文中的未引用代碼(dead-code)。它依賴於 ES2015 模塊語法的 靜態結構 特性,例如 im

原创 說說 CommonJS 中的 require 和 ES6 中的 import 區別?

提問 CommonJS 中的 require/exports 和 ES6 中的 import/export 區別? 回答 CommonJS 模塊是運行時加載,ES6 Modules 是編譯時加載並輸出接口。 CommonJS 輸出是值的拷

原创 JS 迭代器 Iterator 介紹

面試時又被人問起 JS 的 Iterator 迭代器。查閱 MDN,得知 非標準。 Iterator 函數是一個 SpiderMonkey 專有特性,並且會在某一時刻被刪除。爲將來使用的話,請考慮使用 for...of 循環和 迭代協議

原创 vue3.0 beta 編譯優化研究

在尤雨溪 - 聊聊 Vue.js 3.0 Beta 官方直播完整版 2020-04-21裏我發現了一個有意思的工具,輸入模板展示它編譯優化的結果,網址在這裏:https://vue-next-template-explorer.netlif

原创 JS 敏感詞識別-模式匹配算法 DFA

DFA(Deterministic Finite Automaton,即確定有窮自動機。其原理爲:有一個有限狀態集合和一些從一個狀態通向另一個狀態的邊,每條邊上標記有一個符號,其中一個狀態是初態,某些狀態是終態。但不同於不確定的有限自動機,

原创 JS 雪花算法生成隨機 ID

生成一個隨機的 ID 有很多種做法,比如說 GUID 和 UUID。但如果想要有序,可以插入數據庫中做數字主鍵,那就有了雪花算法。雪花算法得到的是個比較大的數字,比較大,而 JS 中 Number 類型的最大值 Number.MAX_SAF

原创 JS 實現一個 LRU 算法

LRU 是 Least Recently Used 的縮寫,即最近最少使用,是一種常用的頁面置換算法,選擇內存中最近最久未使用的頁面予以淘汰。 可用的 NodeJS 庫見node-lru-cache 然怎麼使用 JS 簡單寫一個? 思路 解

原创 Node 底層結構探祕

摘錄自nodejs真的是單線程嗎? Node.js 標準庫,這部分是由 Javascript 編寫的,即我們使用過程中直接能調用的 API。在源碼中的 lib 目錄下可以看到。 Node bindings,這一層是 Javascript

原创 Node 內存泄漏排查案例

背景 在阿里雲上看到我運行了一段時間的程序,發現 memory 一項基本是在穩步提升,就知道有內存泄漏的情況出現。如下圖 近三日從 35% 升到 40%,緩慢而堅定的提升。 代碼 排查此問題需要分析其堆內存快照,當然我們不能直接使用線上機

原创 node Mac 徹底卸載

卸載node 依次在終端執行下面的腳本 sudo npm uninstall npm -g sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receip

原创 NodeJs 的 Event loop 事件循環機制詳解

什麼是事件輪詢 事件循環是 Node.js 處理非阻塞 I/O 操作的機制——儘管 JavaScript 是單線程處理的——當有可能的時候,它們會把操作轉移到系統內核中去。 下面的圖表顯示了事件循環的概述以及操作順序。 ┌──────

原创 Node 進程間怎麼通信的

我們都知道 Node 沒法操作線程,但可以操作進程,一旦涉及主從模式的進程守護,或者是多機部署的需要,那麼都可能碰上需要相互通信的場景,本篇就介紹幾種常用方法。 Node 原生 IPC(Inter-Process Communication