原创 js中new 的原理

在調用 new 的過程中會發生以上四件事情: 新生成了一個對象 鏈接到原型 綁定 this 返回新對象 代碼實現new function create() { let obj = {} let Con = [].shi

原创 筆記 前端需要了解的漸進增強和優雅降級之間的不同

優雅降級 Web站點在所有新式瀏覽器中都能正常工作,如果用戶使用的是老式瀏覽器,則代碼會檢查以確認它們是否能正常工作。由於IE獨特的盒模型佈局問題,針對不同版本的IE的hack實踐過優雅降級了,爲那些無法支持功能的瀏覽器增加候選方

原创 js中的map, filter, reduce

map map 作用是生成一個新數組,遍歷原數組,將每個元素拿出來做一些變換然後放入到新的數組中。 let arr = [1,2,3] let newArr = arr.map(item => item + 1)

原创 筆記 Webpack 性能優化

減少 Webpack 打包時間 優化 Loader 對於 Loader 來說,影響打包效率首當其衝必屬 Babel 了。因爲 Babel 會將代碼轉爲字符串生成 AST,然後對 AST 繼續進行轉變最後再生成新的代碼,項目越大,

原创 筆記 前端需要了解的axios

特點: axios 對原生xhr封裝從Promise實現版本,符合最新es規範 Axios 是一個基於 promise 的 HTTP 庫,支持promise所有的API 它可以攔截請求和響應 它可以轉換請求數據和響應數據,並對響

原创 筆記 前端需要了解的時間複雜度

什麼是時間複雜度? 通常使用最差的時間複雜度來衡量一個算法的好壞。 常數時間 O(1) 代表這個操作和數據量沒關係,是一個固定時間的操作,比如說四則運算。 對於一個算法來說,可能會計算出操作次數爲 aN + 1,N 代表數據量。那

原创 筆記 前端性能優化的方法

減少 HTTP 請求 ; 減少 DNS 查找 ; 避免重定向 ; 使用 Ajax 緩存; 延遲載入組件; 預先載入組件 ; 減少 DOM 元素數量; 切分組件到多個域; 最小化 iframe 的數量; 不要出現http 404

原创 筆記 事件委託

事件委託,通俗地來講,就是把一個元素響應事件(click、keydown……)的函數委託到另一個元素;一般來講,會把一個或者一組元素的事件委託到它的父層或者更外層元素上,真正綁定事件的是外層元素,當事件響應到需要綁定的元素上時,會

原创 筆記 瀏覽器內核

IE: trident內核 Firefox:gecko內核 Safari:webkit內核 Opera:以前是presto內核,Opera現已改用Google Chrome的Blink內核 Chrome:Blink(基於webk

原创 js中添加、移除、移動、複製、創建和查找節點

創建新節點 createDocumentFragment() //創建一個DOM片段 createElement() //創建一個具體的元素 createTextNode() //創建一個文本節點 添加、移除、替換、插入 a

原创 筆記 從輸入 URL 到頁面渲染的整個流程

DNS 查詢 DNS 緩存 建立 TCP 連接(三次握手)連接複用 發送 HTTP 請求(請求的四部分) 後臺處理請求 4.1 監聽 80 端口 4.2 路由 4.3 渲染 HTML 模板 4.4 生成響應 發送 HTTP 響應

原创 react添加、刪除一行dom節點

render裏面的佈局 { this.state.externalContact.map((item,i)=>{ //console.log("i==="+i+"item"+item) return(

原创 筆記 前端需要了解的算法題--動態規劃

動態規劃背後的基本思想非常簡單。就是將一個問題拆分爲子問題,一般來說這些子問題都是非常相似的,那麼我們可以通過只解決一次每個子問題來達到減少計算量的目的。 一旦得出每個子問題的解,就存儲該結果以便下次使用。 斐波那契數列 斐波那契

原创 筆記 前端需要了解的算法題--樹

二叉樹的先序,中序,後序遍歷 先序遍歷表示先訪問根節點,然後訪問左節點,最後訪問右節點。 中序遍歷表示先訪問左節點,然後訪問根節點,最後訪問右節點。 後序遍歷表示先訪問左節點,然後訪問右節點,最後訪問根節點。 遞歸實現 funct

原创 筆記 前端需要了解的算法題--排序

通用函數,在之後的舉例中會使用到。 function checkArray(array) { if (!array) return } function swap(array, left, right) { let