原创 一文喫透 React SSR 服務端渲染和同構原理

推薦下我自己的小冊 React SSR 服務端渲染原理解析與實踐 全網最完整的 React SSR 同構技術原理解析與實踐,從零開始手把手帶你打造自己的同構應用開發骨架,幫助大家徹底深入理解服務端渲染及底層實現原理,學完本課程,你也可以打

原创 數字證書有效性驗證

數字證書的有效性驗證主要從三個方面: 1,數字證書有效期驗證 2,根證書驗證 3,CRL驗證     下面依次講解這三塊內容     1,數字證書有效期驗證 就是說證書的使用時間要在起始時間和結束時間之內。通過解析證書很容易得到證書的有效

原创 【查漏補缺】fetch是可以取消的

寫在前面 在網頁中,Ajax和Fetch是最常用的發起網絡請求的兩種方式。在面試中,關於這兩者的區別也會被提及。你也許聽說過這麼一個說法,Ajax是可以取消的,Fetch是不可以取消的。真的是這樣嗎? 取消Ajax 使用ajax發起一個網

原创 前端面試官: 你知道source-map的原理是什麼嗎?

https://cloud.tencent.com/developer/article/1598223

原创 【刷算法】滑動窗口的最大值

題目描述 給定一個數組和滑動窗口的大小,找出所有滑動窗口裏數值的最大值。例如,如果輸入數組{2,3,4,2,6,2,5,1}及滑動窗口的大小3,那麼一共存在6個滑動窗口,他們的最大值分別爲{4,4,6,6,6,5}; 針對數組{2,3,4

原创 bind和forEach同時綁定this的時候,如何確定this指向?

"use strict"; const a=[1,2,30]; const b=[4,5,60]; const c=[7,8,90]; a.forEach((function (){ console.log(this); }).bi

原创 查漏補缺 值傳遞和引用傳遞

  #2.5 值傳遞和引用傳遞 藉助下面的例子,我們先來看一看什麼是值傳遞,什麼是引用傳遞: let name = 'ConardLi'; function changeValue(name){ name = 'code祕密花園';

原创 Number類型 類型轉化

Number:整數或浮點數,還有一些特殊值(-Infinity、+Infinity、NaN 注意 任何對象都有toString()方法嗎?null和undefined就沒有!另外,null還僞裝成了object類型。 number對象調用

原创 Promise 源碼:then 鏈式調用

前言 接下來要深入的是 then 鏈式調用,這個是實現中最繞的一塊。在解讀之前,我們再加深一下印象。 constructor -> fn --同步--> resolve(reject) -> then -> then 回調 constr

原创 各種運數學算符

我們在對各種非Number類型運用數學運算符(- * /)時,會先將非Number類型轉換爲Number類型; 1 - true // 0 1 - null // 1 1 * undefined // NaN 2 * ['5'] /

原创 十進制的0.1 爲什麼不能用二進制很好的表示?

二進制是計算技術中廣泛採用的一種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數爲2,進位規則是“逢二進一”,借位規則是“借一當二”,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主

原创 javascript之閉包六(閉包的作用與注意事項)

六、閉包的作用 閉包:內部函數保存到外部 當內部函數被保存到外部時,將會生成閉包。 閉包會導致原有作用域鏈不釋放,造成內存泄漏(內存佔用) 一)閉包的作用 實現公有變量: eg:函數累加器 可以做緩存(存儲結構):eg:eater 可

原创 React Elements爲什麼要有一個$typeof屬性

React Elements爲什麼要有一個$typeof屬性 假如我們的jsx長這個樣子: <Button type="primary">點擊</Button> 實際上,在經過babel後,它會變成下面這段代碼: React.crea

原创 Symbol的特性

 Symbol的應用場景 下面是幾個Symbol在程序中的應用場景。 應用一:防止XSS 在React的ReactElement對象中,有一個$$typeof屬性,它是一個Symbol類型的變量: var REACT_ELEMENT_T

原创 promise串行

const serialPromises = function (promises) { promises.reduce((prev, next) => prev.then((preVal) => next(preVal)), Pr