原创 nodemon--node.js工程自動熱啓動構建工具

在用node寫應用時,常常會遇到更改代碼後要重啓項目來觀察更改後的效果,手動重啓費時費力,利用nodemon包來實現自動熱重啓,設定監視的文件或文件路徑,發生更改後執行重啓命令,這樣就避免了手動反覆重啓的繁瑣,加快項目的開發速度。

原创 npm安裝Electron 7.x以上版本的方法

在國內安裝Electron 7版本時常常會在安裝electron的時候卡在npm install.js不動,因此需要對npm做如下配置 registry=https://registry.npm.taobao.org sass_b

原创 Blob數據類型及應用

JavaScript中有一種專門存放二進制數據的數據類型對象,叫blob,是從HTML5引入的。 blob的英文名稱爲Binary Large Object,即二進制的大型對象。 File對象繼承自blob對象,並有一些額外的拓展

原创 Mac下sublime text3運行Python3的可交互環境設置

Mac系統自帶Python2.7,默認啓動2.7版本的Python解釋器。當下載了Python3.7後,需要在sublime text3的編輯器裏運行Python3.7的解釋器時,需要做如下的設置: tools->build s

原创 node環境使用CommonJS規範的模塊加載機制

CommonJS規範的模塊加載機制與ES6的有所不同,ES6屬於靜態加載,直到加載模塊的腳本運行纔會運行要加載的模塊。而CommonJS的模塊是動態加載,要加載的模塊先運行,然後輸出一個exports對象給加載模塊的腳本,expo

原创 Django的模板過濾器空格

在用模板過濾器將變量格式化時,要注意格式化規則前不要加空格,否則無法解析。如: {{ value|date:"M d Y H:i" }} 如果寫成: {{ value | date: "M d Y H: i" }} date和

原创 圖片加載防閃動的CSS方法

圖片閃動:在移動端設置圖片佈局時,圖片使用自適應的方式,其父元素的高度是被圖片高度撐開的。在圖片加載前,父元素高度爲0;加載後,父元素高度爲圖片高度。這樣的過程會造成視覺上的閃爍,影響用戶體驗。 因此,在用圖片撐開父元素高度之前,

原创 瀏覽器重排和重繪觸發情況

瀏覽器渲染引擎解析HTML文檔形成DOM樹,解析CSS文檔形成樣式規則,DOM樹和樣式規則結合形成渲染樹,然後開始繪製。渲染樹需要重新分析且節點尺寸需要重新計算就稱爲重排。節點的幾何屬性或者樣式發生變化就稱爲重繪。任何改變渲染樹構

原创 ES6的Map數據結構

Map數據結構是爲了解決對象無法使用非字符串作爲鍵而提出的數據結構,本質上講,Map是一個二維數組,其中數組元素是隻含有兩個元素的數組,這兩個元素按順序分別爲鍵和值。如var m = new Map([[x, 1], [y, 2]

原创 JS的事件循環機制

JS的異步操作實質上是將一個任務分爲幾部分,以兩部分爲例,第二部分作爲回調函數(這個函數根據API的寫法來確定是異步調用還是同步調用,如果是異步調用才真正應該叫回調函數),等第一部分運行結束有了結果後,再通過調用回調函數(即第二部

原创 判斷JS數據類型的方法

JS是弱語言,其數據類型可以自動轉換,因此很多時候在用到數據的時刻不清楚數據的類型到底是哪種,需要進行判斷後,再執行語句。 最新的ECMAScript規範定義的數據類型分爲兩大類,分別爲基本類型和引用類型。 基本類型: Stri

原创 淺談瀏覽器內核線程

瀏覽器內核是多線程的,各個線程互相配合,常駐線程如下: GUI渲染線程 負責對HTML文檔的渲染,當發生重繪或者回流時,GUI線程就會執行。當JS引擎線程執行時,GUI線程會被掛起,兩者互斥。 JavaScript引擎線程 用於

原创 函數參數對象arguments轉爲數組args的幾種方法

在將函數柯里化的時候,經常需要用到函數參數對象arguments轉爲數組的情況(如果是用apply方法來調用函數,其實沒必要轉爲數組,因爲apply方法的第二個參數不僅可以是數組,也可以是類數組對象)。下面給出幾種轉爲數組的方式:

原创 ES6中的生成器和迭代器

生成器函數generator function 用function *name () {}來聲明,調用生成器函數則會返回一個生成器對象generator,並且符合可迭代協議和迭代器協議,因此generator也是一個迭代器對象,具

原创 在setTimeout或者ajax等異步方法中回調函數的寫法與調用

常常在setTimeout或者ajax中產生異步代碼執行,執行的是回調函數,那麼回調函數怎麼寫呢?這要跟回調函數的函數體內寫法有關; 回調函數的函數體內return返回值不是函數; 回調函數的函數體內return返回值是函數;