乐趣区

平时工作和学习中总结的一些知识点

1、有图片的页面等所有图片加载完毕再进行判断

    /* 等所有图片加载完毕后再判断文本高度以设置置底方式
     *
     */
    $('#main').find('img').load(function() {
        imgs --;
        if (!imgs) {setFooterPos();
        };
    });

2、ajax post 发送数据

      formData 方式会自动把 boolean 类型的转化为 string 类型
      如果不让它转化,加上 contentType: "application/json; charset=utf-8" 
      数据序列化 JSON.stringify(link_data); 使之变成 json 形式传值 

3、非常巧妙的数组去重办法

  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]

4、js 实现剪切板功能

    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") // 执行浏览器复制命令
    

5、0.1 + 0.2 等不等于 0.3 的正确比较方法

  console.log(Math.abs(0.1 + 0.2 - 0.3) <= Number.EPSILON);
  Number.EPSILON  number 类型的最小精度
  Math.abs   返回绝对值的方法
  

6、判断数据类型的办法

 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
  

7、重要的按钮操作(如发送,创建)要给按钮添加去重操作
8、时间戳转换(传入 13 位)

  time(time = +new Date()) {var date = new Date(time + 8 * 3600 * 1000) // 增加 8 小时
    return date
      .toJSON()
      .substr(0, 19)
      .replace("T", " ")
  },
  

9、原生 js 去除字符串空格

      String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g, "");
      }

10、vue 路由 query 问题

vue 路由 query 取出的参数为字符串类型 所以不要用 true/false 放到 query 的参数上 

11、获取当天时间的 24:00

 方法一: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
      用方法拼括号里的字符串 

12、http 的知识

 从 HTTP 请求回来,就产生了流式的数据,后续的 DOM 树构建、CSS 计算、渲染、合成、绘制,都是尽可能地流式处理前一步的产出:即不需要等到上一步骤完全结束,就开始处理上一步的输出,这样我们在浏览网页时,才会看到逐步出现的页面。304 又是一个每个前端必知必会的状态,产生这个状态的前提是:客户端本地已经有缓存的版本,并且在 Request 中告诉了服务端,当服务端通过时间或者 tag,发现没有更新的时候,就会返回一个不含 body 的 304 状态。
退出移动版