原创 最小棧

問題描述: 實現一個最小棧,包含以下方法:push、pop、getMin(返回棧中最小值) 分析: 由於棧具有push和pop方法,因此棧中的最小值是不固定的;因此可以通過維持另一個棧B用於保存歷史最小元素的下標; 每次入棧時判斷

原创 JavaScript 工具函數介紹(與數組結合)

Array.prototype.reduce() 參數Array.prototype.reduce(callback(accumulator, currentValue[, Index[, array]]) [, initia

原创 React 新版本特性說明

1.React 16版本以前渲染一個組件最外層有時要使用到一個無意義的<div>元素作爲包裹元素,否則會報錯;React 16.2版本以後,新增了react.fragment API,不需要外層有包裹元素時,可以使用<></>或者

原创 面試疑點解析

HTTP/2的多路複用實現原理: http/2多路複用的機制是基於“幀”和“流”的概念提出的;http/2以前的傳輸是基於文本分割形式的消息,以換行符進行鍵值對的分割,服務端接收時無法預估其內存需求,在解析速度和傳輸效率上都有影響

原创 ES6 Proxy

定義及用法 ES6引入了Proxy可以爲代理對象的基本操作設置一些自定義操作;基本用法: var p = new Proxy(target, handler); typeof p === 'object'; // true ta

原创 Trie

簡介 根據維基百科介紹: 在計算機科學中,trie,又稱前綴樹或字典樹,是一種有序樹,用於保存關聯數組,其中的鍵通常是字符串。與二叉查找樹不同,鍵不是直接保存在節點中,而是由節點在樹中的位置決定。一個節點的所有子孫都有相同的前綴

原创 常見數組排序

冒泡排序 選擇排序 直接插入排序 希爾排序 快速排序 歸併排序 堆排序 function bubble(arr) { if (arr.length < 2) return arr; for (let i = 0,

原创 CSS3 animation steps

背景 css3引入了transition和animation屬性爲我們提供了強大的動畫效果,也爲前端設計和實現提供更多的可能性; 需求:利用給定的一組圖片,實現動畫效果; 優勢:純CSS實現,不需要藉助gif;更好的性能表現 Ac

原创 You should not use Link outside a Router

Promblem React項目中適應`react-router-dom`組件時提示 You should not use <Link> outside a <Router> Reason React-route v4

原创 redux剖析

redux剖析reduxRedux流程圖combineReducerscreateStoreapplyMiddlewarecomposereact-reduxProviderconnect參考文獻 redux redux是flux

原创 redux applyMiddleware

redux中間件redux中間件介紹進一步分析中間件redux-thunk源碼解讀applyMiddleware源碼分析參考文獻 redux中間件介紹 用途:主要用於處理異步數據流;redux中間件的實質是對store的disp

原创 HTTP各版本簡介

簡介 HTTP(Hyper Text Transfer Protocol)即超文本傳輸協議,是一種用於客戶端與服務端進行信息交換的通信協議; 特點: 簡單 無狀態:http本身是無狀態協議,通過Http Cookie實現了有狀態

原创 瀏覽器垃圾回收

引用計數法 瀏覽器維護一張表,裏邊保存了所有對象的引用次數;每當引用一次,次數+1;垃圾回收時,將表裏引用次數爲0的對象空間釋放; 缺點: 循環引用或者相互引用的對象計數總是不爲0,無法被回收,導致內存泄漏; Chrome V8

原创 IIFE立即執行函數

介紹 IIFE(Immediately Invoked Function Expression),即立即執行函數表達式,也稱爲自執行匿名函數;特點時定義即執行; 參考下面的demo,我們可以看到IIFE由兩個部分組成: 第一部

原创 React服務端渲染框架——next.js

目錄 next.js介紹 Hello World —— next.js 自定義共享組件 創建動態頁面 動態路由及數據獲取 路由的鉤子函數 懶加載 CSS-in-JS:style-jsx 外部CS