原创 react源碼閱讀-react-domRender

  react-dom入口函數以及基本數據類型。閱讀React包的源碼版本爲16.8.6。   在第一章節我們瞭解到,react包本質上是一個數據結構建立的抽象屏障,提供起來供react的其它包,諸如react-dom,react

原创 react源碼閱讀3 update與updateQueue

react-dom後續updateContainer部分。閱讀React包的源碼版本爲16.8.6。   在上一章節中我們看到了react-dom中render函數的邏輯是給傳入的React組件創建了一個fiberRoot對象,用

原创 react源碼閱讀4 ExpirationTime

react更新中優先級依賴的標識ExpirationTime。閱讀React包的源碼版本爲16.8.6。   這一章節,讓我們拋棄掉react代碼中的聯繫,單純的來看ExpirationTime以及一些計算方式。 Expirati

原创 Promise的出現與實現

這篇文章總結一下JS本身單線程異步的侷限性(promise出現的原因),以及實現一個簡易的Promise。 單線程與異步   JavaScript是一個單線程執行的語言,在不考慮異步編程的情況下,它執行的順序就是一個eventLo

原创 關於JS中number位(Bit)操作的一些思考

  JavaScript中所有的數字都按照IEEE-754標準儲存爲64位。但是位操作符卻是轉換爲32位數字進行操作的。關於這一點的可用性進行了一些思考。 32帶符號整數   先來複習一下32帶符號整數的數據表示方式。在計算機中,

原创 package.json裏面有啥

前言   今年的2月19日是令我印象深刻的一天,不是因爲這天是元宵節,而是因爲這天晚上9點我生平頭一回直面阿里面試官的面試,問倒了我一半問題。   在前端工程化部分他問了我兩個問題: 你知道`1,表示什麼版本嗎? depends

原创 不定期更新的源碼閱讀日常——lodash-3

  今天我們來讀lodash的節流防抖部分代碼。   節流和防抖,是限制函數高頻執行的一種手段。它們概念的區別在於,防抖合併多次函數執行爲一次;節流是在一定的時間內函數只執行一次。具體的區別可以參考lodash官網推薦的這篇文章

原创 一文告訴你 Why React Hook

  使用了將近一週的 react Hook,期間嘗試將項目中原有的class component改造成Hook,比較Hook和class的區別,得出一些個人的思考與見解。 什麼是Hook    react官網上面對 Hook 是這

原创 JS模塊的藝術

ES6的module導出引入總結。 基本module語法   ES6提供了export和import語法,給予了JS模塊化代碼組織形式的能力。export語句用於從模塊中導出函數、對象或原始值,以便其他程序可以通過import語句

原创 隱藏在"=="後面的JavaScript隱式轉換

  逛遍各大程序社區論壇,不少自稱編程“大牛”的人最喜歡調侃的語言就是JavaScript。這門被一週創建出來的動態語言被嘲諷沒有任何編程的嚴謹性,其中最爲被大家們津津樂道的就是JS中的"=="號。實際上你在使用時,經常會發現這樣

原创 關於JS的Date你所要知道的二三事

  半個多月沒更新博文了……鬼知道我經歷了什麼。連續十幾天的班趕項目,在五一加班兩天後,終於閒暇一會,整理一下前些時間項目所用到的Date對象進行處理的知識點。 Date   Date是JavaScript中一個原生構造函數,可以

原创 《SEO深度解析》讀書筆記(1-3)

  SEO(Search Engine Optimization),搜索引擎優化,根據搜索引擎(谷歌、百度)的規則來優化自己網站,提升在搜索引擎裏面排名的一種技術。是前端技能樹比較冷門的一環。   最開始接觸到SEO,是最近自己接

原创 react源碼閱讀-基礎

  react包基礎概念以及React包的兩個核心api閱讀。閱讀React包的源碼版本爲16.8.6。 基礎概念 react包   react包的本質上是建立一個react相關數據類型的抽象屏障,它創建了一系列符合react渲染

原创 《JavaScript函數式編程》4~8 讀後感

  《JavaScript函數式編程》4~8章講了函數式編程通用的幾種模式,以及在實際業務場景測試、異步操作的環境下的運用方式。 函數的柯里化與管道模式    在《JavaScript函數式編程》1~3 讀後感中曾經闡述過:在函

原创 不定期更新的源碼閱讀日常——lodash-2

  今天我們來讀lodash的深拷貝部分代碼。   lodash的clone和cloneDeep兩個方法分別對應淺拷貝和深拷貝。兩個函數其實都依賴於baseClone方法,通過傳入一個標識來進行深拷貝或者淺拷貝的區分,我們來簡單看