一、有圖片的頁面等全部圖片加載完畢再進行判斷前端
/*等全部圖片加載完畢後再判斷文本高度以設置置底方式 * */ $('#main').find('img').load(function() { imgs --; if (!imgs) { setFooterPos(); }; });
二、ajax post發送數據vue
formData方式會自動把boolean類型的轉化爲string類型 若是不讓它轉化,加上 contentType: "application/json; charset=utf-8" 數據序列化 JSON.stringify(link_data); 使之變成json形式傳值
三、很是巧妙的數組去重辦法ajax
const arr1 = [1, 2, 1, 2, 3, 5, 4, 5, 3, 4, 4, 4, 4]; const arr2 = arr1.filter( (element, index, self) => { return self.indexOf( element ) === index; }); //核心行 console.log( arr2 ); // [1, 2, 3, 5, 4] console.log( arr1 ); // [1, 2, 1, 2, 3, 5, 4, 5, 3, 4, 4, 4, 4]
四、js實現剪切板功能json
var Url2 = ENV.INSURANCE_HOST + "/fl/" + row.flowId var oInput = document.createElement("input") oInput.value = Url2 document.body.appendChild(oInput) oInput.select() // 選擇對象 document.execCommand("Copy") // 執行瀏覽器複製命令
五、0.1 + 0.2 等不等於0.3的正確比較方法數組
console.log( Math.abs(0.1 + 0.2 - 0.3) <= Number.EPSILON); Number.EPSILON number類型的最小精度 Math.abs 返回絕對值的方法
六、判斷數據類型的辦法瀏覽器
var symbolObject = (function(){ return this; }).call(Symbol("a")); console.log(typeof symbolObject); //object console.log(symbolObject instanceof Symbol); //true console.log(symbolObject.constructor == Symbol); //true
七、重要的按鈕操做(如發送,建立)要給按鈕添加去重操做
八、時間戳轉換(傳入13位)緩存
time(time = +new Date()) { var date = new Date(time + 8 * 3600 * 1000) // 增長8小時 return date .toJSON() .substr(0, 19) .replace("T", " ") },
九、原生js去除字符串空格app
String.prototype.trim=function(){ return this.replace(/(^\s*)|(\s*$)/g, ""); }
十、vue路由query問題post
vue 路由query取出的參數爲字符串類型 因此不要用true/false放到query的參數上
十一、獲取當天時間的 24:00this
方法一: a = Date.now() + 1000 * 60 * 60 * 8 a - (a % (1000 * 60 * 60 * 24)) - (1000 * 60 * 60*8) a % (1000 * 60 * 60 * 24) //一成天的秒數 方法二: new Date("2019-5-17").getTime() //1558022400000 用方法拼括號裏的字符串
十二、http的知識
從 HTTP 請求回來,就產生了流式的數據,後續的 DOM 樹構建、CSS 計算、渲染、合成、繪製,都是儘量地流式處理前一步的產出:即不須要等到上一步驟徹底結束,就開始處理上一步的輸出,這樣咱們在瀏覽網頁時,纔會看到逐步出現的頁面。 304 又是一個每一個前端必知必會的狀態,產生這個狀態的前提是:客戶端本地已經有緩存的版本,而且在 Request 中告訴了服務端,當服務端經過時間或者 tag,發現沒有更新的時候,就會返回一個不含 body 的 304 狀態。