js常用小技巧

switch优化

    // 优化前:
    const fun = function(){
      console.log('执行方法')
    }
    switch (type) 
    {
       case 0:
           fun();
           break;
      case 1:
           fun();
           break;
       case 2:
          fun();
          break;
        case 3:
          fun();
          break;
    }

   // 优化后:
   // 条件作为属性名,处理逻辑作为属性值
    const fun = function(){
      console.log('执行方法')
    }
    const options = new Map([
        [0,fun],
        [1,fun],
        [2,fun],
        [3,fun]
     ])
    const getFun = options.get(1) 
    getFun && getFun()

多值匹配优化

 // 优化前:
if (value === 1 || value === 'one' || value === 2 || value === 'two') {
  // Execute some code
}
 // 优化后:
if ([1, 'one', 2, 'two'].includes(value)) { 
    // Execute some code 
}

随机生成长度为10的字母数字字符串

Math.random().toString(36).substring(2);

1秒更新一次时间

setInterval(() => document.body.innerHTML = new Date().toLocaleString().slice(10,18))

随机生成 16 进制颜色

'#' + Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, '0');

取整

const a = ~~1.11   // 1
const b = 1.11 | 0   // 1
const c = 1.11 >> 0   // 1

寻找数组中的最大和最小值

const arr = [2, 8, 15, 4];
Math.max(...arr); // 15
Math.min(...arr); // 2

格式化金额

var num= "-12345.1";
var format = num.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
console.log(format); // -12,345.1

变量值交换

const a = 1;
const b = 2;
[a, b] = [b, a];
console.log(a); // 2

删除对象属性

let obj = {a: 1, b: 2, c: 3, d: 4};
let {a, b, ...newObj} = obj;
console.log(newObj); // {c: 3, d: 4}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文git地址 https://github.com/TigerHee/shareJS 小数取整: 1.234 |...
    tigerHee阅读 1,886评论 0 1
  • 简介 ECMAScript是JavaScript的标准,JavaScript实现了ECMAScript,ECMAS...
    Zindex阅读 3,077评论 0 3
  • 前言 JavaScript 是一门弱类型语言,其使用非常广泛。 这里我总结了自己日常使用中的 Tips ,不断更新...
    追星人小豪阅读 1,571评论 0 0
  • 变量 会变化的量,是用来存储数据的容器。 命名规范:可以由数字、字母、下划线、$组成,不能以数字开头;严格区分大小...
    magic_pill阅读 3,916评论 0 2
  • 前端常用 工具方法 1.邮箱 2.手机号码 3.电话号码 4.是否url地址 5.是否字符串 6.是否数字 7.是...
    甘道夫老矣阅读 1,513评论 0 0

友情链接更多精彩内容