原创 npm批量安裝需要的模塊

用npm安裝express,就在命令行中輸入: npm i express再用npm安裝ejs,就要再在命令行中輸入:npm i ejs 如果要同時安裝很多模塊,就要輸入多行命令,而且在團隊開發中每個人都要這麼做一邊,雖然不是什麼大事,

原创 javascript,一道容易犯錯的小題

越是基礎的東西,越容易被忽視,接下來就來一道小題,看看我們掌握了沒。 for(i=0, j=0, l=0; i<10, j<11, l<14; i++, j++, l++){ a = i + j; } 上面這段代碼執行後,變量“a”

原创 插入排序---直接插入排序算法(Javascript版)

將n個元素的數列分爲已有序和無序兩個部分。 數列:{a1,a2,a3,a4,…,an} 將該數列的第一元素視爲有序數列,後面都視爲無序數列: {{a1},{a2,a3,a4,…,an}} 將無序數列中的元素插入到有序數列的對應位

原创 檢測IP地址的正則表達式

正則表達式: ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)   ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0

原创 javascript之,深扒typeof,instanceof操作符

寫javascirpt代碼時,typeof和instanceof這兩個操作符時不時就會用到,堪稱必用。但是!使用它們總是不能直接的得到想要的結果,非常糾結,普遍的說法認爲“這兩個操作符或許是javascript中最大的設計缺陷,因爲幾乎

原创 插入排序---希爾插入排序算法(Javascript版)

取一個小於n的整數作爲第一個增量,把序列分組。所有距離爲增量的倍數的元素放在同一個組中。先在各組內進行直接插入排序;然後,取第二個增量(第二個<第一個)重複上述的分組和排序,直至所取的增量=1,即所有元素放在同一組中進行直接插入排序爲止

原创 setTimeout,setInterval,process.nextTick,setImmediate in Nodejs

Nodejs的特點是事件驅動,異步I/O產生的高併發,產生此特點的引擎是事件循環,事件被分門別類地歸到對應的事件觀察者上,比如idle觀察者,定時器觀察者,I/O觀察者等等,事件循環每次循環稱爲Tick,每次Tick按照先後順序從事件觀

原创 選擇排序---直接選擇排序算法(Javascript版)

在要排序的一組數列中,選出最小(或者最大)的一個數與第1個位置的數交換;然後在剩下的數當中再找最小(或者最大)的與第2個位置的數交換,依次類推,直到第n-1個元素(倒數第二個數)和第n個元素(最後一個數)比較爲止。 function so

原创 CoffeeScript之,存在操作符“?”

在javascript中,我們調用對象變量的某個方法之前,經常會向下面的代碼一樣判斷該對象是否存在,該變量定義過並且值不是null的話就調用相應的方法。 if (typeof p !== "undefined" && p !== null

原创 選擇排序---堆排序算法(Javascript版)

堆排序分爲兩個過程: 1.建堆。 堆實質上是完全二叉樹,必須滿足:樹中任一非葉子結點的關鍵字均不大於(或不小於)其左右孩子(若存在)結點的關鍵字。 堆分爲:大根堆和小根堆,升序排序採用大根堆,降序排序採用小根堆。 如果是大根堆,

原创 交換排序---冒泡排序算法(Javascript版)

比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後一個。持續每次對越來越少的元素重複上面的步驟,直

原创 交換排序---快速排序算法(Javascript版)

快速排序是對冒泡排序的一種改進。通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,最終達到整個數據變成有序序列。

原创 web前端學習筆記---利用css+filter完成簡單的圖片透明效果

完成簡單的透明度控制功能 使用filter的功能對圖片元素進行透明度控制。 支持IE8,Chrome瀏覽器。 <style type='text/css'> /*透明20%*/ .opacity-20 { filt

原创 web前端學習筆記---scrollWidth,clientWidth,offsetWidth的區別

通過一個demo測試這三個屬性的差別。 說明: scrollWidth:對象的實際內容的寬度,不包邊線寬度,會隨對象中內容超過可視區後而變大。  clientWidth:對象內容的可視區的寬度,不包滾動條等邊線,會隨對象顯示大小的變

原创 擼一擼Spring Cloud Ribbon的原理-負載均衡器

在上一篇《擼一擼Spring Cloud Ribbon的原理》中整理髮現,RestTemplate內部調用負載均衡攔截器,攔截器內最終是調用了負載均衡器來選擇服務實例。 接下來擼一擼負載均衡器的內部,看看是如何獲取服務實例,獲取以後做了哪些