原创 Mongoose學習筆記

重點記錄 關鍵詞 .lean()使返回的數據可操作 {new: true}返回更新後的數據 基本操作 (詳見 #a2) var Promise = require('bluebird') var mongoose = Prom

原创 jquery深度拷貝extend方法封裝

應用場景 最近在搞微信小程序,這裏面直接引入jquery的話會報錯,但是項目用到了jq的extend方法,在這裏抽離出這個函數,可以引入直接應用 抽離$.extend源碼 var class2type = {}; var toSt

原创 使用jquery的ajax方法提交FormData數據

知識點普及 FormData 用來添加數據,可以是字符串、Blod文件流、File文件流 formData.append('a', 1)意爲添加一個鍵值對,重複添加的鍵不會被覆蓋,formData.set('a', 1)意爲修改

原创 js解決軟鍵盤遮擋輸入框問題

請在這裏查看示例 ☞ cover示例 經驗須知 彈出軟鍵盤時: ios端$(‘body’).scrollTop()會改變 android端$(window).height()會改變 拉起鍵盤不是一瞬間,而是有一個緩動過程 問

原创 js實現窗口全屏示例詳解

這篇文章主要爲大家詳細介紹了js實現窗口全屏示例,包含全屏事件、退出全屏事件等,具有一定的參考價值,感興趣的小夥伴們可以參考一下 前言 該 demo 包含全屏事件、退出全屏事件以及屏幕狀態改變的鉤子函數的封裝 以

原创 構建Promise隊列實現異步函數順序執行

場景 有a、b、c三個異步任務,要求必須先執行a,再執行b,最後執行c 且下一次任務必須要拿到上一次任務執行的結果,才能做操作 思路 我們需要實現一個隊列,將這些異步函數添加進隊列並且管理它們的執行,隊列具有First In Fir

原创 js函數柯里化的理解

函數柯里化理解示例 // 求和 let add = function (a, b, c) { return a + b + c } { /* 簡單版curry函數示例 */ // 對求和函數做curry化 let f1

原创 js將人民幣小寫金額轉換爲大寫

人民幣大寫在線轉換工具 以下爲es6寫法,可以直接在控制欄粘貼運行 /** * 將人民幣小寫金額轉換爲大寫 * * @class RMB * 示例 let rmb = new RMB() console.log(

原创 js去抖和節流函數詳解

Debounce 和 Throttle 的原理及實現僅作爲理解去抖和節流函數的概念,裏面提供的代碼並不一定正確 示例: 網上做示例,一般用scroll或者mousemove事件,我們很難控制觸發事件的次數,這裏我們使用click事件,我

原创 recode

2011/5/1-2015/5/1機械專業,沒事學學計算機相關2015/5/1-2015/6/1畢業啦,做本行還是幹興趣?2015/6/1-2015/9/1自己選的路,跪着也要走完,自學前端中…2015/9/1-2015/11/1學的差不

原创 移動端Retina屏幕1px邊框問題

起因 設計師給出設計稿上明明是1px的邊框在移動端retina屏上顯示很粗(2倍屏上顯示爲2px,3倍屏上顯示爲3px) 設備像素比 注意 安卓不支持小於1的像素,所以通過設置border-width=0.5px不適用安卓 解決

原创 js自定義事件

自定義事件(簡單版) let Event = { /* 綁定事件 Event.on('log', function(param1, param2) {// 綁定一個log事件,並接收param1和param2參數

原创 實現destructuringArray方法,達到如下效果

網上的阿里二面的一道筆試題,實現destructuringArray函數,具有如下功能: // destructuringArray( [1,[2,4],3], "[a,[b],c]" ) // result // { a:1, b:2,

原创 zepto.js使用注意點

(注:以下解決方案只考慮現代瀏覽器(IE>=IE9)和手機端) fadeIn顯隱遮罩層 問題重現 zepto的fadeIn方法,在顯示透明的遮罩層(如opacity: 0.5)時,會把該圖層最終的opacity設置爲1,這顯然不符合我們

原创 Mockjs原理簡析

前言 有一個前後端分離的項目用到過Mockjs,後端提供了數據格式,前端通過模擬接口的返回數據,進行頁面的渲染,有一段時間,百思不得其解,這個插件是怎麼把ajax請求給攔下來的,網上搜索了一番,資料甚少,未果。 後來有一天,不知道怎麼的