一、有图片的页面等全部图片加载完毕再进行判断前端
/*等全部图片加载完毕后再判断文本高度以设置置底方式 * */ $('#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 状态。