原创 前端面試寶典之:手寫Promise 手動實現一個 promise

手動實現一個 promise 規範 首先,讓我們明確一下,我們要實現的究竟是什麼? Promise 實際上是一個規範,具體可以參考:Promise/A+ 而我們要做的,僅僅是實現規範而已,接下來,讓我們一步一步,從易到難寫出一個簡單的 P

原创 前端面試寶典之:parseInt的陷阱 parseInt 陷阱

parseInt 陷阱 從一道面試題說起 前端圈內流傳着一道非常經典,但是非常容易踩坑的面試題。如下: ["1", "2", "3"].map(parseInt) // A. ["1", "2", "3"] // B. [1, 2, 3]

原创 原生JS筆記01:執行環境與作用域鏈 概念 執行環境 作用域

概念 執行環境(execution context):是JavaScript中一個非常重要的概念。執行環境定義了變量或函數有權訪問的其他數據,決定了它們各自的行爲。 執行環境的變量對象:每個執行環境都有一個對應的變量對象,它用於存儲環境中

原创 前端面試寶典之:手寫bind方法 手動實現一個 bind 方法

手動實現一個 bind 方法 bind 方法簡介 在正式手寫之前,你得知道 bind 方法是一個什麼東西,在 MDN 上,如此介紹它: bind()方法創建一個新的函數,在 bind()被調用時,這個新函數的 this 被 bind 的第

原创 bug:export 'default' (imported as 'd3') was not found in 'd3'

BUG 在項目中遇到了一個令人困惑的bug: export 'default' (imported as 'd3') was not found in 'd3' 我的寫法如下 import d3 from 'd3' 後面引用d3的方法,

原创 前端面試寶典之:手寫bind方法

手動實現一個 bind 方法 bind 方法簡介 在正式手寫之前,你得知道 bind 方法是一個什麼東西,在 MDN 上,如此介紹它: bind()方法創建一個新的函數,在 bind()被調用時,這個新函數的 this 被 bind 的第

原创 前端面試寶典之:手寫Promise

手動實現一個 promise 規範 首先,讓我們明確一下,我們要實現的究竟是什麼? Promise 實際上是一個規範,具體可以參考:Promise/A+ 而我們要做的,僅僅是實現規範而已,接下來,讓我們一步一步,從易到難寫出一個簡單的 P

原创 前端面試寶典之:parseInt的陷阱

parseInt 陷阱 從一道面試題說起 前端圈內流傳着一道非常經典,但是非常容易踩坑的面試題。如下: ["1", "2", "3"].map(parseInt) // A. ["1", "2", "3"] // B. [1, 2, 3]

原创 一次另類使用Element-UI的el-upload組件的經歷

內容簡介 記錄了一次通過閱讀Element-UI源碼,利用hack手段,進入el-upload組件特定鉤子的方法。 爲什麼要這麼做? Element-UI是一款優秀的開源項目,但它也無法滿足所有的用戶場景。 當無法滿足的時候,我們可以選擇:

原创 使用node的child_process的spawn方法調用cmd,報錯'.' 不是內部或外部命令

做一個小工具時,用到了node的child_process,因爲要和子進程保持通信,所以我選用了spawn方法。寫法如下: const { spawn } = require('child_process'); spawn('./node_

原创 Html中Grid佈局的邊框解法

Html中Grid佈局的邊框解法 衆所周知,grid佈局目前得到瀏覽器的支持已經非常可觀了,它強大的功能已經成爲很多複雜佈局的首選。 同時,很多場景裏,它也成爲了table佈局的優秀替代方案。 但是很多人在使用grid代替table佈局時,

原创 原生JS筆記01:執行環境與作用域鏈

概念 執行環境(execution context):是JavaScript中一個非常重要的概念。執行環境定義了變量或函數有權訪問的其他數據,決定了它們各自的行爲。 執行環境的變量對象:每個執行環境都有一個對應的變量對象,它用於存儲環境中