原创 利用koa和pug及ejs完成一個簡單的ssr頁面

服務端渲染已經成爲線上系統極力推崇的前端優化方案,比起crs客戶端渲染ssr具有天生seo優勢,而且首屏加載提升,目前最流行的ejs及nuxt框架都是基於ssr的封裝,本篇博文將最原生的服務端渲染方式進行demo演示,以加深對服務

原创 貪心算法解決青蛙跳問題

題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 分析 1層 只有一種跳法 2層 :1,1;2兩種 3層:1,1,1;1,2;2,1;3;四種 4層:3層的沒

原创 如何通過二叉樹的前序和中序遍歷生成二叉樹

牛客網上的一道練習題: 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,

原创 遞歸優化策略

很多程序員都慎用遞歸,因爲少不注意就會造成內存崩潰,其實只要做到遞歸優化就回儘可能避免 經典問題 求斐波那契數列第n項,n從0開始 不優化: function Fibonacci(n) { // write code he

原创 js如何用兩個棧模擬隊列

用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型。 分析 隊列特性:先進先出 棧:先進後出 js中我們用數組實現棧,單個數組 壓棧push(),出棧pop(), js中同樣用數組實現隊列,入隊 p

原创 如何用vscode編寫Markdown文件

開始寫博客已經有一段時間了,用Markdown也算的心應手了,但是對於一名專業的開發人員,用編輯工具ide寫文檔是個基本功,雖然項目中各種設計需求文檔都是word的但日常開發維護中組內使用最方便的莫過於markdwn了,本篇博文詳

原创 node基礎知識點1

Node.js 基礎知識點 Node.js 是什麼 JavaScript 運行時 既不是語言,也不是框架,它是一個平臺 Node.js 中的 JavaScript 沒有 BOM、DOM EcmaScript 基本的 Ja

原创 js高級進階之數據結構“棧”es5和es6的實現及應用

對程序員來說棧結構最爲熟悉的一種數據結構,其特點是遵從後進先出(LIFO——Last In First Out)原則,新添加或待刪除的元素保存在棧的同一端,稱作棧頂,另一端稱作棧底。在棧中,新元素總是靠近棧頂,而舊元素總是接近棧底

原创 用代理模式實現圖片懶加載

在網頁開發中我們經常需要在線請求圖片到頁面展示,但在網速不佳情況下就會使頁面抖動閃爍,或大白屏展示,這些都嚴重影響到用戶的體驗,或者不在當前展示區域的圖片先不請求,頁面滾動到可是區域時在加載圖片,優化網絡請求,最普通的解決方法就是

原创 js排序大全

排序是程序員的基本工,本篇博文就js排序算法做一總結。 冒泡排序 let bubblingSort = function (arry,order){ let arry = [...src]; let orde

原创 js高級進階之內存管理

js是動態語言,並沒有提供內存管理相關的的api操作,需要開發人員在寫代碼中規避或者預判處理相關內存問題,隨着前端複雜度逐漸增高,前端開發者對於js內存管理要求逐漸加強,如果你想進階高級那麼必須對內存管理有所較深理解,本篇博文詳細

原创 ES5面向對象js實現繼承的最優方式

es5時代js面向對象的的編程需要重點關注的問題就是“繼承”,要實現繼承,在js中有多種方式,雖然各種方式都有利弊,沒有做好的但是相較之下總有最優的,本篇博文將這幾種方法逐一列舉總結,參考來源《javascript高級程序設計》。

原创 詳解es6中set,map,WeakSet,Weakmap的區別和用法

set,map,WeakSet,Weakmap 在js的使用頻率越來越高,特備是一些新框架的源碼中,本篇博文將其基本用法和區別做一總結,加強記憶。 set set定義及特徵 在js中Set 對象允許存儲任何類型的唯一值,無論是原

原创 https“中間人攻擊”介紹

https真的安全嗎?當然比起http答案是肯定的。但即便如此依然有存在針對https的“中間人攻擊”不安全隱患,在特定的環境窗口就可能發生,本篇博文介紹下“中間人攻擊”。 HTTPS 的實現原理 大家可能都聽說過 HTTPS 協

原创 一次學完ES6 的擴展運算符(對象展開符) ...

擴展運算符( spread )是三個點(…),將一個數組轉爲用逗號分隔的參數序列。 下面羅列幾個常用方法 1.合併數組 es5合併數組 var a = [1,2],b=[3,4] var c = a.concat(b) conso