常用功能JS收藏(提升代码逼格)

  • 获取URL的查询参数

    let query = {};
    location.search.replace(/([^?&=]+)=([^&]+)/g, (_,k,v) => query[k]=v);
    
  • 生成随机字符串

    // 生成长度为11的随机字母数字字符串
    Math.random().toString(36).substring(2);
    
  • 生成10位随机数字

    Math.floor((Math.random()+Math.floor(Math.random()*9+1))*Math.pow(10,9))
    
  • 过去或未来几天的时间集合

    // 创建过去三天的数组
    [...Array(3).keys()].map(days => new Date(Date.now() - 86400000 * days));
    
  • 随机16进制颜色值

    '#' + Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, '0');
    
  • ES6数组去重

    [...new Set(arr)]
    
  • 手机号正则过滤字符 11位手机号

    str.replace(/^([^1]*)([\d]{0,11})(.*)$/, '$2')
    
  • 固定电话正则过滤字符 13位包含'-'

    str.replace(/^([^\d]*)([\d-]{0,13})(.*)$/, '$2');
    
  • js 可选链(实验性功能)

    const a = obj?.a; // undefined, 如果没有"?"就报错了
    // const a = (null === obj || undefined === obj) ? undefined : obj.a;
    const baz = obj?.foo?.bar?.baz;
    
    var object1 = {}
    var foo = object1.foo ?? "default"; // "default"
    
    let a = false;
    a ||= 1; // a || (a = 1);
    
    obj::func // 等价 func.bind(obj)
    
    //函数科里化
    function add(x, y) { return x + y; }
    const addOne = add(1, ?); // 返回函数addOne
    addOne(2); // 3
    
  • 数字、字母、汉字混合排序

    [].sort((a, b) => {
      const num = {: 1,: 2,: 3,: 4,: 5,: 6,: 7,: 8,: 9,: 10 };
      const reg = new RegExp(Object.keys(num).join('|'));
      a = a.replace(reg, $1 => num[$1]);
      b = b.replace(reg, $1 => num[$1]);
      return a.localeCompare(b, 'zh-CN', { numeric: true });
    });
    
  • rgb与int颜色数值转换

    // int转rgb
    function converArgbToRgb(argb){
        var rgb = [];
    	rgb[0] = (argb & 0xff0000) >> 16;
    	rgb[1] = (argb & 0xff00) >> 8;
    	rgb[2] = (argb & 0xff);
    	return "rgb("+rgb[0]+","+rgb[1]+","+rgb[2]+")";
    }
    // rgb转int
    function converRgbToArgb(r,g,b){
    	var color = ((0xFF << 24)|(r << 16)|(g << 8)|b);
    	return color;
    }
    

持 续 更 新 中 。 。 。 \color{#4285f4}{持}\color{#ea4335}{续}\color{#fbbc05}{更}\color{#4285f4}{新}\color{#34a853}{中}\color{#ea4335}{。。。}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zh_rey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值